-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
79 lines (61 loc) · 3.77 KB
/
Makefile
File metadata and controls
79 lines (61 loc) · 3.77 KB
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
BUILD_NUMBER?=dev
JAVASCRIPT_SOURCE_FILES:=$(shell find web/src -print)
all: generated
generated: slickqa/slick.pb.go slickqa/slick.pb.gw.go web/public/slick.swagger.json web/src/slick-api
slickqa/slick.pb.go: slick.proto
protoc -I/usr/local/include -I. -Iproto-dependencies/ --go_out=plugins=grpc:slickqa/ slick.proto
cd slickqa; protoc -I/usr/local/include -I.. -I../proto-dependencies/ --gotag_out=xxx="json+\"-\" bson+\"-\"":. ../slick.proto
slickqa/slick.pb.gw.go: slick.proto
protoc -I/usr/local/include -I. -Iproto-dependencies/ --grpc-gateway_out=logtostderr=true:slickqa/ slick.proto
web/public/slick.swagger.json: slick.proto
protoc -I/usr/local/include -I. -Iproto-dependencies/ --swagger_out=logtostderr=true:web/public/ slick.proto
web/node_modules/.bin/openapi:
cd web; npm install
web/src/slick-api: web/public/slick.swagger.json web/node_modules/.bin/openapi
cd web; ./node_modules/.bin/openapi -s public/slick.swagger.json -o src/slick-api -l js
perl -pi -e 's/module:types.//' web/src/slick-api/*.js
perl -pi -e 's/typedef slickqa/typedef {Object} slickqa/' web/src/slick-api/types.js
cat web/additionalTypeDef.txt >> web/src/slick-api/types.js
perl -pi -e 's/Promise<slickqa(.*?)>/Promise<HttpResponse<slickqa\1>>/' web/src/slick-api/*.js
perl -pi -e 's/Id\.([A-Z])/Id_\1/g' web/src/slick-api/Links.js
perl -pi -e 's/Id\.([A-Z])/Id_\1/g' web/src/slick-api/Agents.js
patch -p1 <fixcodecompletion.diff
clean:
rm -rf slickqa/slick.pb.go slickqa/slick.pb.gw.go web/public/slick.swagger.json web/src/slick-api build dist web/dist slickversion/build.go
web/dist/index.js: web/src/slick-api $(JAVASCRIPT_SOURCE_FILES)
cd web; npm install; npm run dist
dist/web.zip: web/dist/index.js
mkdir -p dist
cd web/dist; zip -9 -r ../../dist/web.zip .
slickversion/build.go:
cd slickversion; echo "package slickversion\n\nconst (\n\tBuild = \"${BUILD_NUMBER}\"\n)\n" > build.go
dist/linux-amd64-normal/slick: generated
mkdir -p dist/linux-amd64-normal
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -a -ldflags '-extldflags "-static"' -o dist/linux-amd64-normal/slick
dist/linux-amd64-embedded/slick: dist/web.zip dist/linux-amd64-normal/slick
mkdir -p dist/linux-amd64-embedded
cp dist/linux-amd64-normal/slick dist/linux-amd64-embedded/slick
rice append -i ./commands --exec dist/linux-amd64-embedded/slick
dist/mac-amd64-normal/slick: generated
mkdir -p dist/mac-amd64-normal
GOOS=darwin GOARCH=amd64 go build -o dist/mac-amd64-normal/slick
dist/mac-amd64-embedded/slick: dist/web.zip dist/mac-amd64-normal/slick
mkdir -p dist/mac-amd64-embedded
cp dist/mac-amd64-normal/slick dist/mac-amd64-embedded/slick
rice append -i ./commands --exec dist/mac-amd64-embedded/slick
dist/windows-amd64-normal/slick.exe: generated
mkdir -p dist/windows-amd64-normal
GOOS=windows GOARCH=amd64 go build -o dist/windows-amd64-normal/slick.exe
dist/windows-amd64-embedded/slick.exe: dist/web.zip dist/linux-amd64-normal/slick
mkdir -p dist/windows-amd64-embedded
cp dist/windows-amd64-normal/slick.exe dist/windows-amd64-embedded/slick.exe
rice append -i ./commands --exec dist/windows-amd64-embedded/slick.exe
dist: dist/web.zip slickversion/build.go dist/linux-amd64-normal/slick dist/linux-amd64-embedded/slick dist/mac-amd64-normal/slick dist/mac-amd64-embedded/slick dist/windows-amd64-normal/slick.exe dist/windows-amd64-embedded/slick.exe
deps:
go get -u github.com/GeertJohan/go.rice
go get -u github.com/GeertJohan/go.rice/rice
go get -u github.com/golang/protobuf/protoc-gen-go
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
go get -u github.com/srikrsna/protoc-gen-gotag
#go list ./... |xargs go list -f '{{ join .Imports "\n" }}' |grep -v github.com/slickqa/slick | grep -v workspace |xargs go get -u -t -f