Browse Source

Merge pull request #1800 from v2fly/pkg

add user-package.sh
Kslr 6 years ago
parent
commit
acbb41b407
1 changed files with 125 additions and 0 deletions
  1. 125 0
      release/user-package.sh

+ 125 - 0
release/user-package.sh

@@ -0,0 +1,125 @@
+#!/usr/bin/env bash
+# Bash3 Boilerplate. Copyright (c) 2014, kvz.io
+
+set -o errexit
+set -o pipefail
+set -o nounset
+# set -o xtrace
+
+trap 'echo -e "Aborted, error $? in command: $BASH_COMMAND"; trap ERR; exit 1' ERR
+
+# Set magic variables for current file & dir
+__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+__file="${__dir}/$(basename "${BASH_SOURCE[0]}")"
+__base="$(basename ${__file} .sh)"
+__root="$(cd "$(dirname "${__dir}")" && pwd)" # <-- change this as it depends on your app
+
+
+NOW=$(date '+%Y%m%d-%H%M%S')
+TMP=$(mktemp -d)
+
+BUILDTAG=$NOW
+BUILDNAME="user"
+GOPATH=$(go env GOPATH)
+
+cleanup () { rm -rf $TMP; }
+trap cleanup INT TERM ERR
+
+get_source() {
+	go get -v -t v2ray.com/core/...
+}
+
+build_v2() {
+	pushd $GOPATH/src/v2ray.com/core
+	sed -i "s/\"Po\"/\"${BUILDNAME}\"/;s/\"Custom\"/\"${BUILDTAG}\"/;" core.go
+
+	pushd $GOPATH/src/v2ray.com/core/main
+	env CGO_ENABLED=0 go build -o $TMP/v2ray${EXESUFFIX} -ldflags "-s -w"
+	popd
+
+	git checkout -- core.go
+	popd
+
+	pushd $GOPATH/src/v2ray.com/core/infra/control/main
+	env CGO_ENABLED=0 go build -o $TMP/v2ctl${EXESUFFIX} -tags confonly -ldflags "-s -w"
+	popd
+}
+
+build_dat() {
+	wget -qO - https://api.github.com/repos/v2ray/geoip/releases/latest \
+	| grep browser_download_url | cut -d '"' -f 4 \
+	| wget -i - -O $TMP/geoip.dat
+
+	wget -qO - https://api.github.com/repos/v2ray/domain-list-community/releases/latest \
+	| grep browser_download_url | cut -d '"' -f 4 \
+	| wget -i - -O $TMP/geosite.dat
+}
+
+copyconf() {
+	pushd $GOPATH/src/v2ray.com/core/release/config
+	tar c --exclude "*.dat" . | tar x -C $TMP
+}
+
+pack() {
+	pushd $TMP
+	local PKG=${__dir}/v2ray-custom-${GOARCH}-${GOOS}-${PKGSUFFIX}${NOW}.zip
+	zip -r $PKG .
+}
+
+
+nosource=0
+nodat=0
+noconf=0
+GOOS=linux
+GOARCH=amd64
+EXESUFFIX=
+PKGSUFFIX=
+
+for arg in "$@"; do
+case $arg in
+	arm*)
+		GOARCH=$arg
+		;;
+	mips*)
+		GOARCH=$arg
+		;;
+	386)
+		GOARCH=386
+		;;
+	windows)
+		GOOS=windows
+		EXESUFFIX=.exe
+		;;
+	darwin)
+		GOOS=$arg
+		;;
+	nodat)
+		nodat=1
+		PKGSUFFIX=${PKGSUFFIX}nodat-
+		;;
+	noconf)
+		noconf=1
+		;;
+	nosource)
+		nosource=1
+		;;
+esac
+done
+
+if [[ $nosource != 1 ]]; then
+  get_source	
+fi
+
+export GOOS GOARCH
+build_v2
+
+if [[ $nodat != 1 ]]; then
+  build_dat
+fi
+
+if [[ $noconf != 1 ]]; then
+  copyconf 
+fi
+
+pack
+cleanup