1
1
package main
2
2
3
3
import (
4
- "errors"
5
4
"net"
6
5
"os"
7
6
"strconv"
@@ -25,12 +24,12 @@ var enableUnstableSquash = os.Getenv("UNSTABLE_SQUASH_ENABLE") != ""
25
24
type cmdServer struct {
26
25
Verbose bool `short:"v" description:"Activates the verbose mode"`
27
26
28
- Git string `short:"g" long:"git" description:"Path where the git repositories are located"`
29
- Siva string `long:"siva" description:"Path where the siva repositories are located"`
30
- Host string `short:"h" long:"host" default:"localhost" description:"Host where the server is going to listen"`
31
- Port int `short:"p" long:"port" default:"3306" description:"Port where the server is going to listen"`
32
- User string `short:"u" long:"user" default:"root" description:"User name used for connection"`
33
- Password string `short:"P" long:"password" default:"" description:"Password used for connection"`
27
+ Git [] string `short:"g" long:"git" description:"Path where the git repositories are located, multiple directories can be defined "`
28
+ Siva [] string `long:"siva" description:"Path where the siva repositories are located, multiple directories can be defined "`
29
+ Host string `short:"h" long:"host" default:"localhost" description:"Host where the server is going to listen"`
30
+ Port int `short:"p" long:"port" default:"3306" description:"Port where the server is going to listen"`
31
+ User string `short:"u" long:"user" default:"root" description:"User name used for connection"`
32
+ Password string `short:"P" long:"password" default:"" description:"Password used for connection"`
34
33
35
34
engine * sqle.Engine
36
35
pool * gitbase.RepositoryPool
@@ -42,30 +41,15 @@ func (c *cmdServer) buildDatabase() error {
42
41
c .engine = sqle .New ()
43
42
}
44
43
45
- if c .Git == "" && c .Siva == "" {
46
- return errors .New ("missing git or siva directories" )
47
- }
48
-
49
44
c .pool = gitbase .NewRepositoryPool ()
50
45
51
- if c .Git != "" {
52
- logrus .WithField ("dir" , c .Git ).Debug ("added folder containing git repositories" )
53
-
54
- if err := c .pool .AddDir (c .Git ); err != nil {
55
- return err
56
- }
57
- }
58
-
59
- if c .Siva != "" {
60
- logrus .WithField ("dir" , c .Siva ).Debug ("added folder containing siva repositories" )
61
-
62
- if err := c .pool .AddSivaDir (c .Siva ); err != nil {
63
- return err
64
- }
46
+ if err := c .addDirectories (); err != nil {
47
+ return err
65
48
}
66
49
67
50
c .engine .AddDatabase (gitbase .NewDatabase (c .name ))
68
51
logrus .WithField ("db" , c .name ).Debug ("registered database to catalog" )
52
+
69
53
c .engine .Catalog .RegisterFunctions (function .Functions )
70
54
logrus .Debug ("registered all available functions in catalog" )
71
55
@@ -106,7 +90,36 @@ func (c *cmdServer) Execute(args []string) error {
106
90
return err
107
91
}
108
92
109
- logrus .Debug ("starting server" )
110
-
93
+ logrus .Info ("starting server" )
111
94
return s .Start ()
112
95
}
96
+
97
+ func (c * cmdServer ) addDirectories () error {
98
+ if len (c .Git ) == 0 && len (c .Siva ) == 0 {
99
+ logrus .Error ("At least one git folder or siva folder should be provided." )
100
+ }
101
+
102
+ for _ , dir := range c .Git {
103
+ if err := c .addGitDirectory (dir ); err != nil {
104
+ return err
105
+ }
106
+ }
107
+
108
+ for _ , dir := range c .Siva {
109
+ if err := c .addSivaDirectory (dir ); err != nil {
110
+ return err
111
+ }
112
+ }
113
+
114
+ return nil
115
+ }
116
+
117
+ func (c * cmdServer ) addGitDirectory (folder string ) error {
118
+ logrus .WithField ("dir" , c .Git ).Debug ("git repositories directory added" )
119
+ return c .pool .AddDir (folder )
120
+ }
121
+
122
+ func (c * cmdServer ) addSivaDirectory (folder string ) error {
123
+ logrus .WithField ("dir" , c .Git ).Debug ("siva repositories directory added" )
124
+ return c .pool .AddSivaDir (folder )
125
+ }
0 commit comments