-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
68 lines (52 loc) · 1.92 KB
/
Makefile
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
# Copyright 2015 Eryx <evorui at gmail dot com>, All rights reserved.
EXE_SERVER = bin/kvgod
EXE_CLI = bin/kvgo
APP_HOME = /opt/lynkdb/kvgo
APP_USER = kvgo
PROTOC_CMD = protoc
PROTOC_ARGS = --proto_path=./api/ --go_opt=paths=source_relative --go_out=./pkg/kvapi --go-grpc_out=./pkg/kvapi ./api/*.proto
LYNKX_FITTER_CMD = lynkx-fitter
LYNKX_FITTER_ARGS = pkg/kvapi
.PHONY: server server-run cli cli-install cli-run install test api clean code-stats
all: server cli
@echo ""
@echo "build complete"
@echo ""
server:
go build -trimpath -o ${EXE_SERVER} cmd/server/main.go
cli:
go build -trimpath -ldflags="-s -w" -tags="disable_storage" -o ${EXE_CLI} cmd/cli/main.go
cli-install: cli
mkdir -p ${APP_HOME}/bin
install -m 755 ${EXE_CLI} ${APP_HOME}/${EXE_CLI}
cli-run: cli
${EXE_CLI} etc/local.toml
server-run: server
${EXE_SERVER} -logtostderr true
install: server
mkdir -p ${APP_HOME}/bin
mkdir -p ${APP_HOME}/etc
mkdir -p ${APP_HOME}/var/log
mkdir -p ${APP_HOME}/var/data
mkdir -p ${APP_HOME}/init
cp -rp init/server ${APP_HOME}/init
install -m 755 ${EXE_SERVER} ${APP_HOME}/${EXE_SERVER}
id -u ${APP_USER} || useradd -d ${APP_HOME} -s /sbin/nologin ${APP_USER}
chown -R ${APP_USER}:${APP_USER} ${APP_HOME}
install -m 600 init/server/systemd/systemd.service /lib/systemd/system/kvgo.service
systemctl daemon-reload
systemctl restart kvgo
test:
go test -count=1 ./internal/server -v
code-stats:
find ./pkg -type f -name "*.go" -not -path "*_test2.go" -not -path "*.pb.go" | xargs wc -l|sort -n
find ./internal -type f -name "*.go" -not -path "*_test2.go" -not -path "*.pb.go" | xargs wc -l|sort -n
api:
## go install github.com/golang/protobuf/protoc-gen-go
## go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
## go install github.com/hooto/htoml4g/cmd/htoml-tag-fix
go install github.com/lynkdb/lynkx/cmd/lynkx-fitter
$(PROTOC_CMD) $(PROTOC_ARGS)
$(LYNKX_FITTER_CMD) $(LYNKX_FITTER_ARGS)
clean:
rm -f ${EXE_SERVER}