mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	优化编译脚本
This commit is contained in:
		@@ -1,7 +1,7 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function build() {
 | 
					function build() {
 | 
				
			||||||
	ROOT=$(dirname $0)
 | 
						ROOT=$(dirname "$0")
 | 
				
			||||||
	NAME="edge-api"
 | 
						NAME="edge-api"
 | 
				
			||||||
	DIST=$ROOT/"../dist/${NAME}"
 | 
						DIST=$ROOT/"../dist/${NAME}"
 | 
				
			||||||
	OS=${1}
 | 
						OS=${1}
 | 
				
			||||||
@@ -9,68 +9,68 @@ function build() {
 | 
				
			|||||||
	TAG=${3}
 | 
						TAG=${3}
 | 
				
			||||||
	NODE_ARCHITECTS=("amd64" "386" "arm64" "mips64" "mips64le")
 | 
						NODE_ARCHITECTS=("amd64" "386" "arm64" "mips64" "mips64le")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if [ -z $OS ]; then
 | 
						if [ -z "$OS" ]; then
 | 
				
			||||||
		echo "usage: build.sh OS ARCH"
 | 
							echo "usage: build.sh OS ARCH"
 | 
				
			||||||
		exit
 | 
							exit
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	if [ -z $ARCH ]; then
 | 
						if [ -z "$ARCH" ]; then
 | 
				
			||||||
		echo "usage: build.sh OS ARCH"
 | 
							echo "usage: build.sh OS ARCH"
 | 
				
			||||||
		exit
 | 
							exit
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	if [ -z $TAG ]; then
 | 
						if [ -z "$TAG" ]; then
 | 
				
			||||||
		TAG="community"
 | 
							TAG="community"
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	VERSION=$(lookup-version $ROOT/../internal/const/const.go)
 | 
						VERSION=$(lookup-version "$ROOT"/../internal/const/const.go)
 | 
				
			||||||
	ZIP="${NAME}-${OS}-${ARCH}-${TAG}-v${VERSION}.zip"
 | 
						ZIP="${NAME}-${OS}-${ARCH}-${TAG}-v${VERSION}.zip"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# build edge-node
 | 
						# build edge-node
 | 
				
			||||||
	NodeVersion=$(lookup-version $ROOT"/../../EdgeNode/internal/const/const.go")
 | 
						NodeVersion=$(lookup-version "$ROOT""/../../EdgeNode/internal/const/const.go")
 | 
				
			||||||
	echo "building edge-node v${NodeVersion} ..."
 | 
						echo "building edge-node v${NodeVersion} ..."
 | 
				
			||||||
	EDGE_NODE_BUILD_SCRIPT=$ROOT"/../../EdgeNode/build/build.sh"
 | 
						EDGE_NODE_BUILD_SCRIPT=$ROOT"/../../EdgeNode/build/build.sh"
 | 
				
			||||||
	if [ ! -f $EDGE_NODE_BUILD_SCRIPT ]; then
 | 
						if [ ! -f "$EDGE_NODE_BUILD_SCRIPT" ]; then
 | 
				
			||||||
		echo "unable to find edge-node build script 'EdgeNode/build/build.sh'"
 | 
							echo "unable to find edge-node build script 'EdgeNode/build/build.sh'"
 | 
				
			||||||
		exit
 | 
							exit
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	cd $ROOT"/../../EdgeNode/build"
 | 
						cd "$ROOT""/../../EdgeNode/build" || exit
 | 
				
			||||||
	echo "=============================="
 | 
						echo "=============================="
 | 
				
			||||||
	for arch in "${NODE_ARCHITECTS[@]}"; do
 | 
						for arch in "${NODE_ARCHITECTS[@]}"; do
 | 
				
			||||||
		if [ ! -f $ROOT"/../../EdgeNode/dist/edge-node-linux-${arch}-${TAG}-v${NodeVersion}.zip" ]; then
 | 
							if [ ! -f "$ROOT""/../../EdgeNode/dist/edge-node-linux-${arch}-${TAG}-v${NodeVersion}.zip" ]; then
 | 
				
			||||||
			./build.sh linux $arch $TAG
 | 
								./build.sh linux "$arch" $TAG
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			echo "use built node linux/$arch/v${NodeVersion}"
 | 
								echo "use built node linux/$arch/v${NodeVersion}"
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
	echo "=============================="
 | 
						echo "=============================="
 | 
				
			||||||
	cd -
 | 
						cd - || exit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rm -f $ROOT/deploy/*.zip
 | 
						rm -f "$ROOT"/deploy/*.zip
 | 
				
			||||||
	for arch in "${NODE_ARCHITECTS[@]}"; do
 | 
						for arch in "${NODE_ARCHITECTS[@]}"; do
 | 
				
			||||||
		cp $ROOT"/../../EdgeNode/dist/edge-node-linux-${arch}-${TAG}-v${NodeVersion}.zip" $ROOT/deploy/edge-node-linux-${arch}-v${NodeVersion}.zip
 | 
							cp "$ROOT""/../../EdgeNode/dist/edge-node-linux-${arch}-${TAG}-v${NodeVersion}.zip" "$ROOT"/deploy/edge-node-linux-"${arch}"-v"${NodeVersion}".zip
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# build edge-dns
 | 
						# build edge-dns
 | 
				
			||||||
	if [ "$TAG" = "plus" ]; then
 | 
						if [ "$TAG" = "plus" ]; then
 | 
				
			||||||
		DNS_ROOT=$ROOT"/../../EdgeDNS"
 | 
							DNS_ROOT=$ROOT"/../../EdgeDNS"
 | 
				
			||||||
		if [ -d $DNS_ROOT  ]; then
 | 
							if [ -d "$DNS_ROOT"  ]; then
 | 
				
			||||||
			DNSNodeVersion=$(lookup-version $ROOT"/../../EdgeDNS/internal/const/const.go")
 | 
								DNSNodeVersion=$(lookup-version "$ROOT""/../../EdgeDNS/internal/const/const.go")
 | 
				
			||||||
			echo "building edge-dns ${DNSNodeVersion} ..."
 | 
								echo "building edge-dns ${DNSNodeVersion} ..."
 | 
				
			||||||
			EDGE_DNS_NODE_BUILD_SCRIPT=$ROOT"/../../EdgeDNS/build/build.sh"
 | 
								EDGE_DNS_NODE_BUILD_SCRIPT=$ROOT"/../../EdgeDNS/build/build.sh"
 | 
				
			||||||
			if [ ! -f $EDGE_DNS_NODE_BUILD_SCRIPT ]; then
 | 
								if [ ! -f "$EDGE_DNS_NODE_BUILD_SCRIPT" ]; then
 | 
				
			||||||
				echo "unable to find edge-dns build script 'EdgeDNS/build/build.sh'"
 | 
									echo "unable to find edge-dns build script 'EdgeDNS/build/build.sh'"
 | 
				
			||||||
				exit
 | 
									exit
 | 
				
			||||||
			fi
 | 
								fi
 | 
				
			||||||
			cd $ROOT"/../../EdgeDNS/build"
 | 
								cd "$ROOT""/../../EdgeDNS/build" || exit
 | 
				
			||||||
			echo "=============================="
 | 
								echo "=============================="
 | 
				
			||||||
			architects=("amd64")
 | 
								architects=("amd64")
 | 
				
			||||||
			for arch in "${architects[@]}"; do
 | 
								for arch in "${architects[@]}"; do
 | 
				
			||||||
				./build.sh linux $arch $TAG
 | 
									./build.sh linux "$arch" $TAG
 | 
				
			||||||
			done
 | 
								done
 | 
				
			||||||
			echo "=============================="
 | 
								echo "=============================="
 | 
				
			||||||
			cd -
 | 
								cd - || exit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			for arch in "${architects[@]}"; do
 | 
								for arch in "${architects[@]}"; do
 | 
				
			||||||
				cp $ROOT"/../../EdgeDNS/dist/edge-dns-linux-${arch}-v${DNSNodeVersion}.zip" $ROOT/deploy/edge-dns-linux-${arch}-v${DNSNodeVersion}.zip
 | 
									cp "$ROOT""/../../EdgeDNS/dist/edge-dns-linux-${arch}-v${DNSNodeVersion}.zip" "$ROOT"/deploy/edge-dns-linux-"${arch}"-v"${DNSNodeVersion}".zip
 | 
				
			||||||
			done
 | 
								done
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
@@ -78,32 +78,32 @@ function build() {
 | 
				
			|||||||
	# build sql
 | 
						# build sql
 | 
				
			||||||
	if [ $TAG = "plus" ]; then
 | 
						if [ $TAG = "plus" ]; then
 | 
				
			||||||
		echo "building sql ..."
 | 
							echo "building sql ..."
 | 
				
			||||||
		${ROOT}/sql.sh
 | 
							"${ROOT}"/sql.sh
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# copy files
 | 
						# copy files
 | 
				
			||||||
	echo "copying ..."
 | 
						echo "copying ..."
 | 
				
			||||||
	if [ ! -d $DIST ]; then
 | 
						if [ ! -d "$DIST" ]; then
 | 
				
			||||||
		mkdir $DIST
 | 
							mkdir "$DIST"
 | 
				
			||||||
		mkdir $DIST/bin
 | 
							mkdir "$DIST"/bin
 | 
				
			||||||
		mkdir $DIST/configs
 | 
							mkdir "$DIST"/configs
 | 
				
			||||||
		mkdir $DIST/logs
 | 
							mkdir "$DIST"/logs
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	cp $ROOT/configs/api.template.yaml $DIST/configs/
 | 
						cp "$ROOT"/configs/api.template.yaml "$DIST"/configs/
 | 
				
			||||||
	cp $ROOT/configs/db.template.yaml $DIST/configs/
 | 
						cp "$ROOT"/configs/db.template.yaml "$DIST"/configs/
 | 
				
			||||||
	cp -R $ROOT/deploy $DIST/
 | 
						cp -R "$ROOT"/deploy "$DIST/"
 | 
				
			||||||
	rm -f $dist/deploy/.gitignore
 | 
						rm -f "$DIST"/deploy/.gitignore
 | 
				
			||||||
	cp -R $ROOT/installers $DIST/
 | 
						cp -R "$ROOT"/installers "$DIST"/
 | 
				
			||||||
	cp -R $ROOT/resources $DIST/
 | 
						cp -R "$ROOT"/resources "$DIST"/
 | 
				
			||||||
	rm -f $DIST/resources/ipdata/ip2region/global_region.csv
 | 
						rm -f "$DIST"/resources/ipdata/ip2region/global_region.csv
 | 
				
			||||||
	rm -f $DIST/resources/ipdata/ip2region/ip.merge.txt
 | 
						rm -f "$DIST"/resources/ipdata/ip2region/ip.merge.txt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# building edge installer
 | 
						# building edge installer
 | 
				
			||||||
	echo "building node installer ..."
 | 
						echo "building node installer ..."
 | 
				
			||||||
	architects=("amd64" "386" "arm64")
 | 
						architects=("amd64" "386" "arm64")
 | 
				
			||||||
	for arch in "${architects[@]}"; do
 | 
						for arch in "${architects[@]}"; do
 | 
				
			||||||
		# TODO support arm, mips ...
 | 
							# TODO support arm, mips ...
 | 
				
			||||||
		env GOOS=linux GOARCH=${arch} go build -trimpath -tags $TAG --ldflags="-s -w" -o $ROOT/installers/edge-installer-helper-linux-${arch} $ROOT/../cmd/installer-helper/main.go
 | 
							env GOOS=linux GOARCH="${arch}" go build -trimpath -tags $TAG --ldflags="-s -w" -o "$ROOT"/installers/edge-installer-helper-linux-"${arch}" "$ROOT"/../cmd/installer-helper/main.go
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# building edge dns installer
 | 
						# building edge dns installer
 | 
				
			||||||
@@ -111,15 +111,15 @@ function build() {
 | 
				
			|||||||
	architects=("amd64" "386" "arm64")
 | 
						architects=("amd64" "386" "arm64")
 | 
				
			||||||
	for arch in "${architects[@]}"; do
 | 
						for arch in "${architects[@]}"; do
 | 
				
			||||||
		# TODO support arm, mips ...
 | 
							# TODO support arm, mips ...
 | 
				
			||||||
		env GOOS=linux GOARCH=${arch} go build -trimpath -tags $TAG --ldflags="-s -w" -o $ROOT/installers/edge-installer-dns-helper-linux-${arch} $ROOT/../cmd/installer-dns-helper/main.go
 | 
							env GOOS=linux GOARCH="${arch}" go build -trimpath -tags $TAG --ldflags="-s -w" -o "$ROOT"/installers/edge-installer-dns-helper-linux-"${arch}" "$ROOT"/../cmd/installer-dns-helper/main.go
 | 
				
			||||||
	done
 | 
						done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# building api node
 | 
						# building api node
 | 
				
			||||||
	env GOOS=$OS GOARCH=$ARCH go build -trimpath -tags $TAG --ldflags="-s -w" -o $DIST/bin/edge-api $ROOT/../cmd/edge-api/main.go
 | 
						env GOOS="$OS" GOARCH="$ARCH" go build -trimpath -tags $TAG --ldflags="-s -w" -o "$DIST"/bin/edge-api "$ROOT"/../cmd/edge-api/main.go
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	# delete hidden files
 | 
						# delete hidden files
 | 
				
			||||||
	find $DIST -name ".DS_Store" -delete
 | 
						find "$DIST" -name ".DS_Store" -delete
 | 
				
			||||||
	find $DIST -name ".gitignore" -delete
 | 
						find "$DIST" -name ".gitignore" -delete
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	echo "zip files"
 | 
						echo "zip files"
 | 
				
			||||||
	cd "${DIST}/../" || exit
 | 
						cd "${DIST}/../" || exit
 | 
				
			||||||
@@ -135,15 +135,15 @@ function build() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function lookup-version() {
 | 
					function lookup-version() {
 | 
				
			||||||
	FILE=$1
 | 
						FILE=$1
 | 
				
			||||||
	VERSION_DATA=$(cat $FILE)
 | 
						VERSION_DATA=$(cat "$FILE")
 | 
				
			||||||
	re="Version[ ]+=[ ]+\"([0-9.]+)\""
 | 
						re="Version[ ]+=[ ]+\"([0-9.]+)\""
 | 
				
			||||||
	if [[ $VERSION_DATA =~ $re ]]; then
 | 
						if [[ $VERSION_DATA =~ $re ]]; then
 | 
				
			||||||
		VERSION=${BASH_REMATCH[1]}
 | 
							VERSION=${BASH_REMATCH[1]}
 | 
				
			||||||
		echo $VERSION
 | 
							echo "$VERSION"
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		echo "could not match version"
 | 
							echo "could not match version"
 | 
				
			||||||
		exit
 | 
							exit
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
build $1 $2 $3
 | 
					build "$1" "$2" "$3"
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Reference in New Issue
	
	Block a user