mirror of https://github.com/v2ray/v2ray-core
vcptr
5 years ago
1 changed files with 125 additions and 0 deletions
@ -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 |
Loading…
Reference in new issue