1- # /bash/sh
1+ #! /bin/bash
22export VERSION=0.26.10
3- export GOPROXY=direct
3+ GOFlAGS= " -s -w -extldflags -static "
44
5- sudo apt-get update
6- sudo apt-get install gcc-mingw-w64-i686 gcc-multilib
7- env GOOS=windows GOARCH=386 CGO_ENABLED=1 CC=i686-w64-mingw32-gcc go build -ldflags " -s -w -extldflags -static -extldflags -static" -buildmode=c-shared -o npc_sdk.dll cmd/npc/sdk.go
8- env GOOS=linux GOARCH=386 CGO_ENABLED=1 CC=gcc go build -ldflags " -s -w -extldflags -static -extldflags -static" -buildmode=c-shared -o npc_sdk.so cmd/npc/sdk.go
9- tar -czvf npc_sdk.tar.gz npc_sdk.dll npc_sdk.so npc_sdk.h
5+ if [ ! -d " ./build" ]; then
6+ mkdir -p ./build
7+ fi
108
11- wget https://github.com/upx/upx/releases/download/v3.95/upx-3.95-amd64_linux.tar.xz
12- tar -xvf upx-3.95-amd64_linux.tar.xz
13- cp upx-3.95-amd64_linux/upx ./
9+ rm -rf ./build/*
1410
15- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
16- tar -czvf linux_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
11+ for ARCH in amd64 arm64 loong64; do
12+ CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -ldflags " ${GOFlAGS} " ./cmd/npc/npc.go
13+ tar -czf ./build/linux_${ARCH} _client.tar.gz npc conf/npc.conf conf/multi_account.conf
14+ rm -f npc
15+ done
1716
18-
19- CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
20- tar -czvf linux_386_client.tar.gz npc conf/npc.conf conf/multi_account.conf
21-
22-
23- CGO_ENABLED=0 GOOS=freebsd GOARCH=386 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
24- tar -czvf freebsd_386_client.tar.gz npc conf/npc.conf conf/multi_account.conf
25-
26-
27- CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
28- tar -czvf freebsd_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
29-
30-
31- CGO_ENABLED=0 GOOS=freebsd GOARCH=arm go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
32- tar -czvf freebsd_arm_client.tar.gz npc conf/npc.conf conf/multi_account.conf
33-
34-
35- CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
36- tar -czvf linux_arm_v7_client.tar.gz npc conf/npc.conf conf/multi_account.conf
37-
38-
39- CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
40- tar -czvf linux_arm_v6_client.tar.gz npc conf/npc.conf conf/multi_account.conf
41-
42-
43- CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
44- tar -czvf linux_arm_v5_client.tar.gz npc conf/npc.conf conf/multi_account.conf
45-
46-
47- CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
48- tar -czvf linux_arm64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
49-
50-
51- CGO_ENABLED=0 GOOS=linux GOARCH=mips64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
52- tar -czvf linux_mips64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
53-
54-
55- CGO_ENABLED=0 GOOS=linux GOARCH=mips64le go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
56- tar -czvf linux_mips64le_client.tar.gz npc conf/npc.conf conf/multi_account.conf
57-
58-
59- CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
60- tar -czvf linux_mipsle_client.tar.gz npc conf/npc.conf conf/multi_account.conf
61-
62-
63- CGO_ENABLED=0 GOOS=linux GOARCH=mips go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
64- tar -czvf linux_mips_client.tar.gz npc conf/npc.conf conf/multi_account.conf
65-
66-
67- CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
68- tar -czvf windows_386_client.tar.gz npc.exe conf/npc.conf conf/multi_account.conf
69-
70-
71- CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
72- tar -czvf windows_amd64_client.tar.gz npc.exe conf/npc.conf conf/multi_account.conf
73-
74-
75- CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
76- tar -czvf darwin_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
77-
78-
79- CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
80- tar -czvf darwin_arm64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
81-
82-
83- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
84- tar -czvf linux_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
85-
86-
87- CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
88- tar -czvf linux_386_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
89-
90-
91- CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
92- tar -czvf linux_arm_v5_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
93-
94-
95- CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
96- tar -czvf linux_arm_v6_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
97-
98-
99- CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
100- tar -czvf linux_arm_v7_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
101-
102-
103- CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
104- tar -czvf linux_arm64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
105-
106-
107- CGO_ENABLED=0 GOOS=freebsd GOARCH=arm go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
108- tar -czvf freebsd_arm_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
109-
110-
111- CGO_ENABLED=0 GOOS=freebsd GOARCH=386 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
112- tar -czvf freebsd_386_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
113-
114-
115- CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
116- tar -czvf freebsd_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
117-
118-
119- CGO_ENABLED=0 GOOS=linux GOARCH=mips go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
120- tar -czvf linux_mips_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
121-
122-
123- CGO_ENABLED=0 GOOS=linux GOARCH=mips64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
124- tar -czvf linux_mips64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
125-
126-
127- CGO_ENABLED=0 GOOS=linux GOARCH=mips64le go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
128- tar -czvf linux_mips64le_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
129-
130-
131- CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
132- tar -czvf linux_mipsle_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
133-
134-
135- CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
136- tar -czvf darwin_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
137-
138-
139- CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
140- tar -czvf darwin_arm64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
141-
142-
143- CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
144- tar -czvf windows_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps.exe
145-
146-
147- CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags " -s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
148- tar -czvf windows_386_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps.exe
149-
150- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
151- sudo add-apt-repository " deb [arch=amd64] https://download.docker.com/linux/ubuntu $( lsb_release -cs) stable"
152- sudo apt-get update
153- sudo apt-get -y -o Dpkg::Options::=" --force-confnew" install docker-ce
154- docker --version
155- docker run --rm -i -w /app -v $( pwd) :/app -e ANDROID_HOME=/usr/local/android_sdk -e GOPROXY=direct lucor/fyne-cross:android-latest /app/build.android.sh
156- git clone https://github.com/cnlh/spksrc.git ~ /spksrc
157- mkdir ~ /spksrc/nps && cp -rf ./* ~ /spksrc/nps/
158- docker run -itd --name spksrc --env VERSION=$VERSION -e GOPROXY=direct -v ~ /spksrc:/spksrc synocommunity/spksrc /bin/bash
159- docker exec -it spksrc /bin/bash -c ' cd /spksrc && make setup && cd /spksrc/spk/npc && make arch-x64-7.0'
160- cp ~ /spksrc/packages/npc_x64-7.0_$VERSION -1.spk ./npc_syno.spk
161-
162-
163- echo " $DOCKER_PASSWORD " | docker login -u " $DOCKER_USERNAME " --password-stdin
164- export DOCKER_CLI_EXPERIMENTAL=enabled
165- docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d
166- docker buildx create --use --name mybuilder
167- docker buildx build --tag ffdfgdfg/nps:$VERSION --tag ffdfgdfg/nps:latest --output type=image,push=true --file Dockerfile.nps --platform=linux/amd64,linux/arm64,linux/386,linux/arm .
168- docker buildx build --tag ffdfgdfg/npc:$VERSION --tag ffdfgdfg/npc:latest --output type=image,push=true --file Dockerfile.npc --platform=linux/amd64,linux/arm64,linux/386,linux/arm .
17+ for ARCH in amd64 arm64 loong64; do
18+ CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -ldflags " ${GOFlAGS} " ./cmd/nps/nps.go
19+ tar -czf ./build/linux_${ARCH} _server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
20+ rm -f nps
21+ done
0 commit comments