install.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. PREFIX="${1:-/opt/mynetspeeder}"
  4. BIN_PATH="/usr/local/bin/mynetspeeder"
  5. PYTHON_BIN="${PYTHON_BIN:-$(command -v python3 || true)}"
  6. PACKAGE_PARENT="$(dirname "$PREFIX")"
  7. PACKAGE_NAME="$(basename "$PREFIX")"
  8. if [[ $EUID -ne 0 ]]; then
  9. echo "need root"
  10. exit 1
  11. fi
  12. if [[ -z "$PYTHON_BIN" ]]; then
  13. echo "python3 not found"
  14. exit 1
  15. fi
  16. if ! command -v rsync >/dev/null 2>&1; then
  17. echo "rsync not found"
  18. exit 1
  19. fi
  20. mkdir -p "$PREFIX"
  21. rsync -a --delete /home/mynetspeeder/ "$PREFIX/"
  22. find "$PREFIX" -name '__pycache__' -type d -prune -exec rm -rf {} +
  23. cat > "$BIN_PATH" <<EOF
  24. #!/usr/bin/env bash
  25. set -euo pipefail
  26. export PYTHONPATH="$PACKAGE_PARENT\${PYTHONPATH:+:\$PYTHONPATH}"
  27. cd "$PACKAGE_PARENT"
  28. exec "$PYTHON_BIN" -m "$PACKAGE_NAME" "\$@"
  29. EOF
  30. chmod +x "$BIN_PATH"
  31. chmod +x "$PREFIX/scripts/start-transparent.sh" "$PREFIX/scripts/stop-transparent.sh" "$PREFIX/scripts/install.sh"
  32. [[ -f "$PREFIX/scripts/start-relay.sh" ]] && chmod +x "$PREFIX/scripts/start-relay.sh"
  33. [[ -f "$PREFIX/scripts/stop-relay.sh" ]] && chmod +x "$PREFIX/scripts/stop-relay.sh"
  34. echo "installed to $PREFIX"
  35. echo "package parent: $PACKAGE_PARENT"
  36. echo "command: $BIN_PATH"
  37. echo "test: mynetspeeder --help"