Files
gdown/tools/native-host/install-macos.sh
2026-02-25 11:12:23 +09:00

42 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
EXTENSION_ID="${1:-makoclohjdpempbndoaljeadpngefhcf}"
HOST_NAME="org.gdown.nativehost"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
RUNNER_PATH="$SCRIPT_DIR/.runtime/run-host-macos.sh"
TEMPLATE_PATH="$SCRIPT_DIR/manifest/${HOST_NAME}.json.template"
CHROME_DIR="$HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts"
OUT_PATH="$CHROME_DIR/${HOST_NAME}.json"
NODE_PATH="$(command -v node || true)"
if [[ ! -f "$TEMPLATE_PATH" ]]; then
echo "template not found: $TEMPLATE_PATH" >&2
exit 1
fi
if [[ -z "$NODE_PATH" ]]; then
echo "node not found in current shell PATH" >&2
exit 1
fi
mkdir -p "$CHROME_DIR"
mkdir -p "$SCRIPT_DIR/.runtime"
cat > "$RUNNER_PATH" <<EOF
#!/usr/bin/env bash
set -euo pipefail
exec "$NODE_PATH" "$SCRIPT_DIR/host.mjs"
EOF
chmod +x "$RUNNER_PATH"
sed \
-e "s|__ABSOLUTE_HOST_PATH__|$RUNNER_PATH|g" \
-e "s|__EXTENSION_ID__|$EXTENSION_ID|g" \
"$TEMPLATE_PATH" > "$OUT_PATH"
echo "installed: $OUT_PATH"
echo "extension id: $EXTENSION_ID"
echo "node path: $NODE_PATH"