-
Notifications
You must be signed in to change notification settings - Fork 0
/
build-all-platform.sh
executable file
·121 lines (105 loc) · 2.27 KB
/
build-all-platform.sh
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
rm -rf ./build
# change this value to the version you want to build
version="1.0.0"
author="Serghei Gurgurov"
license="ISC"
keywords="[\"onion-kv\", \"key-value\", \"store\", \"database\"]"
cd ./src/
build_platform() {
env GOOS=$goos GOARCH=$goarch go build -o ../build/$packageos-$packagearch/bin/onion-kv$extension
cat ../LICENSE > ../build/$packageos-$packagearch/LICENSE
echo "{}" |
jq "
.version=\"${version}\"
| .name=\"onion-kv-${packageos}-${packagearch}\"
| .description=\"onion-kv binary for ${packageos} ${packagearch}\"
| .repository={
\"type\": \"git\",
\"url\": \"https://github.com/SergheiGurgurov/onion-kv.git\"
}
| .author=\"${author}\"
| .keywords=${keywords}
| .os[0]=\"${packageos}\"
| .cpu[0]=\"${packagearch}\"
| .license=\"${license}\"
" > ../build/$packageos-$packagearch/package.json
}
goarch="amd64"
goos="linux"
packagearch="x64"
packageos="linux"
extension=""
build_platform
goarch="arm64"
goos="linux"
packagearch="arm64"
packageos="linux"
extension=""
build_platform
goarch="amd64"
goos="darwin"
packagearch="x64"
packageos="darwin"
extension=""
build_platform
goarch="arm64"
goos="darwin"
packagearch="arm64"
packageos="darwin"
extension=""
build_platform
goarch="amd64"
goos="windows"
packagearch="x64"
packageos="win32"
extension=".exe"
build_platform
cd ..
echo '{
"name": "onion-kv",
"description": "a simple key-value store written in golang",
"bin": {
"onion-kv": "bin/cli"
},
"repository":{
"type": "git",
"url": "https://github.com/SergheiGurgurov/onion-kv.git"
},
"os": [
"darwin",
"linux",
"win32"
],
"keywords": [
"onion-kv",
"key-value",
"store",
"database"
],
"cpu": [
"arm64",
"x64"
],
"author": "Serghei Gurgurov",
"license": "ISC"
}' |
jq "
.version=\"${version}\" |
.optionalDependencies={
\"onion-kv-linux-x64\": \"${version}\",
\"onion-kv-linux-arm64\": \"${version}\",
\"onion-kv-darwin-x64\": \"${version}\",
\"onion-kv-darwin-arm64\": \"${version}\",
\"onion-kv-win32-x64\": \"${version}\"
}
" > ./build/package.json
cat ./LICENSE > ./build/LICENSE
mkdir ./build/bin
cat ./cli.js > ./build/bin/cli.js
echo "
darwin-arm64
darwin-x64
linux-arm64
linux-x64
win32-x64
" > ./build/.npmignore