install_fast_media_lock.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  4. LAUNCHER="$SCRIPT_DIR/fast-media-lock"
  5. TARGET="/usr/local/bin/fast-media-lock"
  6. DEFAULT_WORKERS=8
  7. if [[ ! -x "$LAUNCHER" ]]; then
  8. echo "[ERROR] launcher not found or not executable: $LAUNCHER" >&2
  9. exit 1
  10. fi
  11. TMP_WRAPPER="$(mktemp)"
  12. trap 'rm -f "$TMP_WRAPPER"' EXIT
  13. cat > "$TMP_WRAPPER" <<EOF
  14. #!/usr/bin/env bash
  15. set -euo pipefail
  16. LAUNCHER="$LAUNCHER"
  17. DEFAULT_WORKERS=$DEFAULT_WORKERS
  18. if [[ ! -x "\$LAUNCHER" ]]; then
  19. echo "[ERROR] launcher not found or not executable: \$LAUNCHER" >&2
  20. exit 1
  21. fi
  22. args=("\$@")
  23. has_workers=0
  24. for arg in "\${args[@]}"; do
  25. case "\$arg" in
  26. --workers|--workers=*)
  27. has_workers=1
  28. break
  29. ;;
  30. esac
  31. done
  32. if [[ \$has_workers -eq 0 ]]; then
  33. case "\${1:-}" in
  34. lock|encrypt|unlock|decrypt|lock-name|encrypt-name|unlock-name|decrypt-name)
  35. args+=(--workers "\$DEFAULT_WORKERS")
  36. ;;
  37. esac
  38. fi
  39. exec "\$LAUNCHER" "\${args[@]}"
  40. EOF
  41. sudo install -m 755 "$TMP_WRAPPER" "$TARGET"
  42. echo "Installed: $TARGET -> $LAUNCHER"
  43. echo "Try: fast-media-lock -h"