Files
AutoDL-Remote/scripts/dev-install-cache.sh
T

78 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
PLUGIN_DIR="$ROOT_DIR/plugins/autodl-remote"
PLUGIN_JSON="$PLUGIN_DIR/.codex-plugin/plugin.json"
CACHE_ROOT="${CODEX_AUTODL_REMOTE_CACHE_ROOT:-$HOME/.codex/plugins/cache/local-codex-plugins/autodl-remote}"
KEEP_OLD=false
while [ $# -gt 0 ]; do
case "$1" in
--keep-old)
KEEP_OLD=true
shift
;;
--cache-root)
[ $# -ge 2 ] || { echo "--cache-root requires a path" >&2; exit 2; }
CACHE_ROOT="$2"
shift 2
;;
-h|--help)
cat <<'EOF'
Usage: scripts/dev-install-cache.sh [--keep-old] [--cache-root path]
Copy the current plugin source into the Codex App local plugin cache.
Environment:
CODEX_AUTODL_REMOTE_CACHE_ROOT Override the cache root.
EOF
exit 0
;;
*)
echo "Unknown option: $1" >&2
exit 2
;;
esac
done
if [ ! -f "$PLUGIN_JSON" ]; then
echo "Missing plugin.json: $PLUGIN_JSON" >&2
exit 1
fi
VERSION="$(
sed -n 's/^[[:space:]]*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$PLUGIN_JSON" | head -n 1
)"
if [ -z "$VERSION" ]; then
echo "Could not read plugin version from $PLUGIN_JSON" >&2
exit 1
fi
DEST="$CACHE_ROOT/$VERSION"
mkdir -p "$CACHE_ROOT"
rm -rf "$DEST"
mkdir -p "$DEST"
if command -v rsync >/dev/null 2>&1; then
rsync -a --delete --exclude '.DS_Store' "$PLUGIN_DIR"/ "$DEST"/
else
(cd "$PLUGIN_DIR" && tar cf - .) | (cd "$DEST" && tar xf -)
fi
chmod +x "$DEST/bin/autodl-remote"
if [ "$KEEP_OLD" = false ]; then
for old in "$CACHE_ROOT"/*; do
[ -d "$old" ] || continue
[ "$old" = "$DEST" ] && continue
rm -rf "$old"
done
fi
"$ROOT_DIR/scripts/install-cli.sh" >/dev/null
echo "Installed plugin cache: $DEST"
echo "Installed CLI symlink via scripts/install-cli.sh"