Skip to content

Commit c7cb2c5

Browse files
authored
Merge pull request #425 from carlosms/go-cli
Migrate to src-d/go-cli and src-d/go-log
2 parents c2e5934 + 1895128 commit c7cb2c5

File tree

235 files changed

+1641
-33915
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

235 files changed

+1641
-33915
lines changed

CHANGELOG.md

+15
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,21 @@
1111

1212
- `bblfsh/bblfshd` has been updated to [v2.12.1-drivers](https://github.com/bblfsh/bblfshd/releases/tag/v2.12.1).
1313

14+
### Breaking Changes
15+
16+
- `srcd` commands do not have a `-v/--verbose` flag anymore, it has been replaced with the `--log-level=debug` option ([#410](https://github.com/src-d/engine/issues/410)).
17+
- The `srcd/cli-daemon` docker image executable now requires to use the `serve` sub command. This does not affect end users ([#410](https://github.com/src-d/engine/issues/410)).
18+
19+
### New Features
20+
21+
- The `srcd` commands now have the following new options for log messages ([#410](https://github.com/src-d/engine/issues/410)):
22+
```
23+
--log-level=[info|debug|warning|error] Logging level (default: info) [$LOG_LEVEL]
24+
--log-format=[text|json] log format, defaults to text on a terminal and json otherwise [$LOG_FORMAT]
25+
--log-fields= default fields for the logger, specified in json [$LOG_FIELDS]
26+
--log-force-format ignore if it is running on a terminal or not [$LOG_FORCE_FORMAT]
27+
```
28+
1429
</details>
1530

1631
## [v0.12.0](https://github.com/src-d/engine/releases/tag/v0.12.0) - 2019-04-04

api/config.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package api
22

33
import (
4-
"github.com/sirupsen/logrus"
4+
"fmt"
5+
56
"github.com/src-d/engine/components"
7+
68
yaml "gopkg.in/yaml.v2"
79
)
810

@@ -63,7 +65,7 @@ func (c *Config) SetDefaults() {
6365
func (c *Config) AsYaml() string {
6466
bs, err := yaml.Marshal(c)
6567
if err != nil {
66-
logrus.Fatalf("Unable to marshal config to YAML: %v", err)
68+
panic(fmt.Sprintf("Unable to marshal config to YAML: %v", err))
6769
}
6870
return string(bs)
6971
}

cmd/srcd-server/Dockerfile

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ ENV ROOTPATH=github.com/src-d/engine
99

1010
ADD . /go/src/${ROOTPATH}
1111
WORKDIR /go/src/${ROOTPATH}
12-
RUN TAG=$(git describe --tags) && go install -ldflags "-X main.version=${TAG}" "${ROOTPATH}/cmd/srcd-server"
12+
RUN TAG=$(git describe --tags) && \
13+
BUILD=$(date +"%m-%d-%Y_%H_%M_%S") && \
14+
go install -ldflags "-X main.version=${TAG} -X main.build=${BUILD}" "${ROOTPATH}/cmd/srcd-server"
1315

1416
FROM alpine
1517
RUN apk update && \

cmd/srcd-server/engine/drivers.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import (
66

77
drivers "github.com/bblfsh/bblfshd/daemon/protocol"
88
"github.com/pkg/errors"
9-
"github.com/sirupsen/logrus"
109
"github.com/src-d/engine/api"
1110
"github.com/src-d/engine/components"
1211
"google.golang.org/grpc"
12+
"gopkg.in/src-d/go-log.v1"
1313
)
1414

1515
var ErrDriverAlreadyInstalled = errors.New("driver already installed")
@@ -20,7 +20,7 @@ func (s *Server) bblfshDriverClient(ctx context.Context) (drivers.ProtocolServic
2020
}
2121

2222
addr := fmt.Sprintf("%s:%d", bblfshd.Name, components.BblfshControlPort)
23-
logrus.Infof("connecting to bblfsh management on %s", addr)
23+
log.Infof("connecting to bblfsh management on %s", addr)
2424
conn, err := grpc.Dial(addr, grpc.WithInsecure())
2525
if err != nil {
2626
return nil, errors.Wrap(err, "could not connect to bblfsh drivers")

cmd/srcd-server/engine/parse.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ import (
1010
"github.com/bblfsh/go-client/v4/tools"
1111
"github.com/docker/docker/api/types/container"
1212
"github.com/pkg/errors"
13-
"github.com/sirupsen/logrus"
1413
"github.com/src-d/engine/api"
1514
"github.com/src-d/engine/components"
1615
"github.com/src-d/engine/docker"
1716
"gopkg.in/bblfsh/sdk.v2/uast/nodes"
1817
enry "gopkg.in/src-d/enry.v1"
18+
"gopkg.in/src-d/go-log.v1"
1919
)
2020

2121
var bblfshd = components.Bblfshd
@@ -24,13 +24,13 @@ type logf func(format string, args ...interface{})
2424

2525
func (s *Server) ParseWithLogs(req *api.ParseRequest, stream api.Engine_ParseWithLogsServer) error {
2626
log := func(format string, args ...interface{}) {
27-
logrus.Infof(format, args...)
27+
log.Infof(format, args...)
2828
err := stream.Send(&api.ParseResponse{
2929
Kind: api.ParseResponse_LOG,
3030
Log: fmt.Sprintf(format, args...),
3131
})
3232
if err != nil {
33-
logrus.Errorf("could not stream log: %v", err)
33+
log.Errorf(err, "could not stream log")
3434
}
3535
}
3636

@@ -42,7 +42,7 @@ func (s *Server) ParseWithLogs(req *api.ParseRequest, stream api.Engine_ParseWit
4242
}
4343

4444
func (s *Server) Parse(ctx context.Context, req *api.ParseRequest) (*api.ParseResponse, error) {
45-
return s.parse(ctx, req, logrus.Infof)
45+
return s.parse(ctx, req, log.Infof)
4646
}
4747

4848
func (s *Server) parse(ctx context.Context, req *api.ParseRequest, log logf) (*api.ParseResponse, error) {
@@ -118,7 +118,7 @@ func createBbblfshd(opts ...docker.ConfigOption) docker.StartFunc {
118118
return err
119119
}
120120

121-
logrus.Infof("starting bblfshd daemon")
121+
log.Infof("starting bblfshd daemon")
122122

123123
ctx, cancel := context.WithTimeout(ctx, startComponentTimeout)
124124
defer cancel()

cmd/srcd-server/engine/sql.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ import (
99
"github.com/docker/docker/api/types/container"
1010
"github.com/go-sql-driver/mysql"
1111
"github.com/pkg/errors"
12-
"github.com/sirupsen/logrus"
1312
"github.com/src-d/engine/api"
1413
"github.com/src-d/engine/components"
1514
"github.com/src-d/engine/docker"
15+
"gopkg.in/src-d/go-log.v1"
1616
)
1717

1818
const (
@@ -37,7 +37,7 @@ func (s *Server) SQL(req *api.SQLRequest, stream api.Engine_SQLServer) error {
3737
AllowNativePasswords: true,
3838
MaxAllowedPacket: 32 << 20, // 32 MiB
3939
}
40-
logrus.Infof("connecting to mysql %q", cfg.FormatDSN())
40+
log.Infof("connecting to mysql %q", cfg.FormatDSN())
4141
db, err := sql.Open("mysql", cfg.FormatDSN())
4242
if err != nil {
4343
return errors.Wrap(err, "could not connect to gitbase")

cmd/srcd-server/engine/web.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"time"
77

88
"github.com/docker/docker/api/types/container"
9-
"github.com/sirupsen/logrus"
109
"github.com/src-d/engine/components"
1110
"github.com/src-d/engine/docker"
11+
"gopkg.in/src-d/go-log.v1"
1212
)
1313

1414
const gitbaseWebSelectLimit = 0
@@ -24,7 +24,7 @@ func createBblfshWeb(opts ...docker.ConfigOption) docker.StartFunc {
2424
return err
2525
}
2626

27-
logrus.Infof("starting bblfshd web")
27+
log.Infof("starting bblfshd web")
2828

2929
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
3030
defer cancel()
@@ -51,7 +51,7 @@ func createGitbaseWeb(opts ...docker.ConfigOption) docker.StartFunc {
5151
return err
5252
}
5353

54-
logrus.Infof("starting gitbase web")
54+
log.Infof("starting gitbase web")
5555

5656
ctx, cancel := context.WithTimeout(context.Background(), startComponentTimeout)
5757
defer cancel()

cmd/srcd-server/main.go

+33-25
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,65 @@
11
package main
22

33
import (
4+
"fmt"
45
"net"
56
"strings"
67

78
"github.com/src-d/engine/api"
89
"github.com/src-d/engine/cmd/srcd-server/engine"
910

10-
flags "github.com/jessevdk/go-flags"
11-
"github.com/sirupsen/logrus"
11+
"github.com/pkg/errors"
1212
grpc "google.golang.org/grpc"
13+
"gopkg.in/src-d/go-cli.v0"
14+
"gopkg.in/src-d/go-log.v1"
1315
yaml "gopkg.in/yaml.v2"
1416
)
1517

16-
var version = "undefined"
18+
// These variables get replaced during the build
19+
var (
20+
version = "dev"
21+
build = "dev"
22+
)
1723

1824
func main() {
19-
var options struct {
20-
Addr string `long:"address" short:"a" default:"0.0.0.0:4242"`
21-
Workdir string `long:"workdir" short:"w" default:""`
22-
HostOS string `long:"host-os" default:""`
23-
Config string `long:"config" short:"c" default:""`
24-
}
25+
cmd := cli.New("srcd-server", version, build, "The Code as Data solution by source{d}")
26+
cmd.AddCommand(&serveCmd{})
2527

26-
_, err := flags.Parse(&options)
27-
if err != nil {
28-
logrus.Fatal(err)
29-
}
28+
cmd.RunMain()
29+
}
3030

31-
workdir := strings.TrimSpace(options.Workdir)
31+
type serveCmd struct {
32+
cli.Command `name:"serve" short-description:"Start the server" long-description:"Start the server"`
33+
34+
Addr string `long:"address" short:"a" default:"0.0.0.0:4242"`
35+
Workdir string `long:"workdir" short:"w" default:""`
36+
HostOS string `long:"host-os" default:""`
37+
Config string `long:"config" short:"c" default:""`
38+
}
39+
40+
func (c *serveCmd) Execute(args []string) error {
41+
workdir := strings.TrimSpace(c.Workdir)
3242
if workdir == "" {
33-
logrus.Fatal("No work directory provided!")
43+
return fmt.Errorf("No work directory provided!")
3444
}
3545

3646
var config api.Config
37-
if options.Config != "" {
38-
err = yaml.Unmarshal([]byte(options.Config), &config)
47+
if c.Config != "" {
48+
err := yaml.Unmarshal([]byte(c.Config), &config)
3949
if err != nil {
40-
logrus.Fatalf("Error reading --config option: %s", err)
50+
return errors.Wrapf(err, "Error reading --config option")
4151
}
4252
}
4353
config.SetDefaults()
4454

45-
l, err := net.Listen("tcp", options.Addr)
55+
l, err := net.Listen("tcp", c.Addr)
4656
if err != nil {
47-
logrus.Fatal(err)
57+
return err
4858
}
4959

5060
srv := grpc.NewServer()
51-
api.RegisterEngineServer(srv, engine.NewServer(version, workdir, options.HostOS, config))
61+
api.RegisterEngineServer(srv, engine.NewServer(version, workdir, c.HostOS, config))
5262

53-
logrus.Infof("listening on %s", options.Addr)
54-
if err := srv.Serve(l); err != nil {
55-
logrus.Fatal(err)
56-
}
63+
log.Infof("listening on %s", c.Addr)
64+
return srv.Serve(l)
5765
}

0 commit comments

Comments
 (0)