Sfoglia il codice sorgente

Added build_trojan-go-fork.sh

Teddysun 1 anno fa
parent
commit
acef6b00a6
1 ha cambiato i file con 55 aggiunte e 0 eliminazioni
  1. 55 0
      docker/trojan-go/build_trojan-go-fork.sh

+ 55 - 0
docker/trojan-go/build_trojan-go-fork.sh

@@ -0,0 +1,55 @@
+#!/bin/bash
+#
+# This is a Shell script for build multi-architectures trojan-go binary file
+# 
+# Supported architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
+# 
+# Copyright (C) 2020 - 2023 Teddysun <[email protected]>
+#
+# Reference URL:
+# https://github.com/p4gefau1t/trojan-go
+# https://github.com/Potterli20/trojan-go-fork
+
+cur_dir="$(pwd)"
+
+COMMANDS=( git go )
+for CMD in "${COMMANDS[@]}"; do
+    if [ ! "$(command -v "${CMD}")" ]; then
+        echo "${CMD} is not installed, please install it and try again" && exit 1
+    fi
+done
+
+cd ${cur_dir}
+#version=$(wget --no-check-certificate -qO- https://api.github.com/repos/p4gefau1t/trojan-go/tags | grep 'name' | cut -d\" -f4 | head -1)
+#echo "git clone -b ${version} https://github.com/p4gefau1t/trojan-go.git"
+echo "git clone https://github.com/Potterli20/trojan-go-fork.git"
+#git clone -b ${version} https://github.com/p4gefau1t/trojan-go.git
+git clone https://github.com/Potterli20/trojan-go-fork.git
+cd trojan-go-fork || exit 2
+
+PACKAGE_NAME="github.com/Potterli20/trojan-go-fork"
+VERSION="$(git describe --tags)"
+# VERSION="v2023.11.15"
+COMMIT="$(git rev-parse HEAD)"
+
+VAR_SETTING="-X ${PACKAGE_NAME}/constant.Version=${VERSION} -X ${PACKAGE_NAME}/constant.Commit=${COMMIT}"
+
+LDFLAGS="-s -w ${VAR_SETTING} -buildid="
+ARCHS=( 386 amd64 arm arm64 ppc64le s390x )
+ARMS=( 6 7 )
+
+for ARCH in ${ARCHS[@]}; do
+    if [ "${ARCH}" = "arm" ]; then
+        for V in ${ARMS[@]}; do
+            echo "Building trojan-go_linux_${ARCH}${V}"
+            env CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} GOARM=${V} go build -v -tags "full" -ldflags "${LDFLAGS}" -o ${cur_dir}/trojan-go_linux_${ARCH}${V}
+        done
+    else
+        echo "Building trojan-go_linux_${ARCH}"
+        env CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -v -tags "full" -ldflags "${LDFLAGS}" -o ${cur_dir}/trojan-go_linux_${ARCH}
+    fi
+done
+
+chmod +x ${cur_dir}/trojan-go_linux_*
+# clean up
+cd ${cur_dir} && rm -fr trojan-go-fork