-
Notifications
You must be signed in to change notification settings - Fork 23
/
reposervice.go
102 lines (90 loc) · 2.73 KB
/
reposervice.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package repos
import (
"encoding/json"
"io/ioutil"
"path/filepath"
"strings"
"github.com/AliceO2Group/Control/configuration"
"github.com/spf13/viper"
)
// TODO: remove support for FILE backend in this one
type RepoService struct {
Svc configuration.RuntimeService
}
func (s *RepoService) GetReposPath() string {
return filepath.Join(viper.GetString("coreWorkingDir"), "repos")
}
func (s *RepoService) NewDefaultRepo(defaultRepo string) error {
if s.Svc != nil {
return s.Svc.SetRuntimeEntry("aliecs","default_repo", defaultRepo)
} else {
data := []byte(defaultRepo)
return ioutil.WriteFile(filepath.Join(s.GetReposPath(),"default_repo"), data, 0644)
}
}
func (s *RepoService) GetDefaultRepo() (defaultRepo string, err error) {
if s.Svc != nil {
return s.Svc.GetRuntimeEntry("aliecs", "default_repo")
} else {
var defaultRepoData []byte
defaultRepoData, err = ioutil.ReadFile(filepath.Join(s.GetReposPath(),"default_repo"))
if err != nil {
return
}
defaultRepo = strings.TrimSuffix(string(defaultRepoData), "\n")
return
}
}
func (s *RepoService) NewDefaultRevision(defaultRevision string) error {
if s.Svc != nil {
return s.Svc.SetRuntimeEntry("aliecs","default_revision", defaultRevision)
} else {
data := []byte(defaultRevision)
return ioutil.WriteFile(filepath.Join(s.GetReposPath(),"default_revision"), data, 0644)
}
}
func (s *RepoService) GetDefaultRevision() (defaultRevision string, err error) {
if s.Svc != nil {
return s.Svc.GetRuntimeEntry("aliecs","default_revision")
} else {
var defaultRevisionData []byte
defaultRevisionData, err = ioutil.ReadFile(filepath.Join(s.GetReposPath(),"default_revision"))
if err != nil {
return
}
defaultRevision = strings.TrimSuffix(string(defaultRevisionData), "\n")
return
}
}
func (s *RepoService) GetRepoDefaultRevisions() (map[string]string, error) {
var defaultRevisions map[string]string
if s.Svc != nil {
data, err := s.Svc.GetRuntimeEntry("aliecs","default_revisions")
if err != nil {
return nil, err
}
err = json.Unmarshal([]byte(data), &defaultRevisions)
if err != nil {
return nil, err
}
} else {
defaultRevisionData, err := ioutil.ReadFile(filepath.Join(s.GetReposPath(),"default_revisions.json"))
if err != nil {
return nil, err
}
err = json.Unmarshal(defaultRevisionData, &defaultRevisions)
}
return defaultRevisions, nil
}
func (s *RepoService) SetRepoDefaultRevisions(defaultRevisions map[string]string) error {
data, err := json.MarshalIndent(defaultRevisions, "", " ")
if err != nil {
return err
}
if s.Svc != nil {
err = s.Svc.SetRuntimeEntry("aliecs","default_revisions", string(data))
} else {
err = ioutil.WriteFile(filepath.Join(s.GetReposPath(),"default_revisions.json"), data, 0644)
}
return err
}