1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-10-02 00:36:03 -04:00

Merge pull request #1800 from v2fly/pkg

add user-package.sh
This commit is contained in:
Kslr 2019-07-13 20:09:57 +08:00 committed by GitHub
commit acbb41b407
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

125
release/user-package.sh Executable file
View File

@ -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