build.sh 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #!/bin/bash
  2. BUILD_FOLDER=build
  3. VERSION=$(cat core/banner.go | grep Version | cut -d '"' -f 2)
  4. bin_dep() {
  5. BIN=$1
  6. which $BIN > /dev/null || { echo "@ Dependency $BIN not found !"; exit 1; }
  7. }
  8. host_dep() {
  9. HOST=$1
  10. ping -c 1 $HOST > /dev/null || { echo "@ Virtual machine host $HOST not visible !"; exit 1; }
  11. }
  12. create_exe_archive() {
  13. bin_dep 'zip'
  14. OUTPUT=$1
  15. echo "@ Creating archive $OUTPUT ..."
  16. zip -j "$OUTPUT" bettercap.exe ../README.md ../LICENSE.md > /dev/null
  17. rm -rf bettercap bettercap.exe
  18. }
  19. create_archive() {
  20. bin_dep 'zip'
  21. OUTPUT=$1
  22. echo "@ Creating archive $OUTPUT ..."
  23. zip -j "$OUTPUT" bettercap ../README.md ../LICENSE.md > /dev/null
  24. rm -rf bettercap bettercap.exe
  25. }
  26. build_linux_amd64() {
  27. echo "@ Building linux/amd64 ..."
  28. go build -o bettercap ..
  29. }
  30. build_linux_armv6l() {
  31. host_dep 'arc.local'
  32. DIR=/home/pi/gocode/src/github.com/bettercap/bettercap
  33. echo "@ Updating repo on arm6l host ..."
  34. ssh pi@arc.local "cd $DIR && rm -rf '$OUTPUT' && git checkout . && git checkout master && git pull" > /dev/null
  35. echo "@ Building linux/armv6l ..."
  36. ssh pi@arc.local "export GOPATH=/home/pi/gocode && cd '$DIR' && PATH=$PATH:/usr/local/bin && go get ./... && go build -o bettercap ." > /dev/null
  37. scp -C pi@arc.local:$DIR/bettercap . > /dev/null
  38. }
  39. build_macos_amd64() {
  40. host_dep 'osxvm'
  41. DIR=/Users/evilsocket/gocode/src/github.com/bettercap/bettercap
  42. echo "@ Updating repo on MacOS VM ..."
  43. ssh osxvm "cd $DIR && rm -rf '$OUTPUT' && git checkout . && git checkout master && git pull" > /dev/null
  44. echo "@ Building darwin/amd64 ..."
  45. ssh osxvm "export GOPATH=/Users/evilsocket/gocode && cd '$DIR' && PATH=$PATH:/usr/local/bin && go get ./... && go build -o bettercap ." > /dev/null
  46. scp -C osxvm:$DIR/bettercap . > /dev/null
  47. }
  48. build_windows_amd64() {
  49. host_dep 'winvm'
  50. DIR=c:/Users/evilsocket/gopath/src/github.com/bettercap/bettercap
  51. echo "@ Updating repo on Windows VM ..."
  52. ssh winvm "cd $DIR && git checkout . && git checkout master && git pull && go get ./..." > /dev/null
  53. echo "@ Building windows/amd64 ..."
  54. ssh winvm "cd $DIR && go build -o bettercap.exe ." > /dev/null
  55. scp -C winvm:$DIR/bettercap.exe . > /dev/null
  56. }
  57. build_android_arm() {
  58. host_dep 'shield'
  59. BASE=/data/data/com.termux/files
  60. THEPATH="$BASE/usr/bin:$BASE/usr/bin/applets:/system/xbin:/system/bin"
  61. LPATH="$BASE/usr/lib"
  62. GPATH=$BASE/home/go
  63. DIR=$GPATH/src/github.com/bettercap/bettercap
  64. echo "@ Updating repo on Android host ..."
  65. ssh -p 8022 root@shield "su -c 'export PATH=$THEPATH && export LD_LIBRARY_PATH="$LPATH" && cd "$DIR" && rm -rf bettercap* && git pull && export GOPATH=$GPATH && go get ./...'"
  66. echo "@ Building android/arm ..."
  67. ssh -p 8022 root@shield "su -c 'export PATH=$THEPATH && export LD_LIBRARY_PATH="$LPATH" && cd "$DIR" && export GOPATH=$GPATH && go build -o bettercap . && setenforce 0'"
  68. echo "@ Downloading bettercap ..."
  69. scp -C -P 8022 root@shield:$DIR/bettercap .
  70. }
  71. rm -rf $BUILD_FOLDER
  72. mkdir $BUILD_FOLDER
  73. cd $BUILD_FOLDER
  74. if [ -z "$1" ]
  75. then
  76. WHAT=all
  77. else
  78. WHAT="$1"
  79. fi
  80. printf "@ Building for $WHAT ...\n\n"
  81. if [[ "$WHAT" == "all" || "$WHAT" == "linux_amd64" ]]; then
  82. build_linux_amd64 && create_archive bettercap_linux_amd64_$VERSION.zip
  83. fi
  84. if [[ "$WHAT" == "all" || "$WHAT" == "linux_armv6l" ]]; then
  85. build_linux_armv6l && create_archive bettercap_linux_armv6l_$VERSION.zip
  86. fi
  87. if [[ "$WHAT" == "all" || "$WHAT" == "osx" || "$WHAT" == "mac" || "$WHAT" == "macos" ]]; then
  88. build_macos_amd64 && create_archive bettercap_macos_amd64_$VERSION.zip
  89. fi
  90. if [[ "$WHAT" == "all" || "$WHAT" == "win" || "$WHAT" == "windows" ]]; then
  91. build_windows_amd64 && create_exe_archive bettercap_windows_amd64_$VERSION.zip
  92. fi
  93. if [[ "$WHAT" == "all" || "$WHAT" == "android" ]]; then
  94. build_android_arm && create_archive bettercap_android_armv7l_$VERSION.zip
  95. fi
  96. sha256sum * > checksums.txt
  97. echo
  98. echo
  99. du -sh *
  100. cd --