build_caddy_forwardproxy_v1.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/sh
  2. #
  3. # This is a Shell script for build multi-architectures caddy binary file with forwardproxy plugin
  4. #
  5. # Supported architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
  6. #
  7. # Copyright (C) 2020 Teddysun <[email protected]>
  8. #
  9. # Reference URL:
  10. # https://github.com/caddyserver/caddy
  11. # https://github.com/caddyserver/forwardproxy
  12. cur_dir="$(pwd)"
  13. COMMANDS=( git go )
  14. for CMD in "${COMMANDS[@]}"; do
  15. if [ ! "$(command -v "${CMD}")" ]; then
  16. echo "${CMD} is not installed, please install it and try again" && exit 1
  17. fi
  18. done
  19. cd ${cur_dir}
  20. echo "git clone https://github.com/caddyserver/forwardproxy.git"
  21. git clone https://github.com/caddyserver/forwardproxy.git
  22. cd forwardproxy/cmd/caddy || exit 2
  23. go get -d -v
  24. LDFLAGS="-s -w"
  25. ARCHS=( 386 amd64 arm arm64 ppc64le s390x )
  26. ARMS=( 6 7 )
  27. for ARCH in ${ARCHS[@]}; do
  28. if [ "${ARCH}" = "arm" ]; then
  29. for V in ${ARMS[@]}; do
  30. echo "Building caddy_linux_${ARCH}${V}"
  31. env CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} GOARM=${V} go build -v -ldflags "${LDFLAGS}" -o ${cur_dir}/caddy_linux_${ARCH}${V}
  32. done
  33. else
  34. echo "Building caddy_linux_${ARCH}"
  35. env CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -v -ldflags "${LDFLAGS}" -o ${cur_dir}/caddy_linux_${ARCH}
  36. fi
  37. done
  38. chmod +x ${cur_dir}/caddy_*
  39. # clean up
  40. cd ${cur_dir} && rm -fr forwardproxy