Phases 0-1 + Sprint A: module split, CLI layer, org-refresh fix, hygiene
- LICENSE (MIT) + README truth-pass; docs/cli.md CLI contract - CLI subcommands (src/cli_cmds/) per "TUI for users, CLI for users+AI" - Hub/detail refactor: keymap dispatch, modal split, action enum, BgMsg bus - Fix: org repos were never refreshed (owner==username match); refresh now parallel — 49 repos in ~11s, surfaced 70 previously invisible PRs - Fix: 3 date bugs in detail/git.rs (format-local, Local::now, 1y month math) - Stash indicator + [m] actions, session persistence, gh CLI token fallback - Legacy UI modules removed; plan/ docs (roadmap, audit, debate, handoff)
This commit is contained in:
1 parent
5787b14880
commit
0468c032c6
100 files changed
+11614
-9840
No files matched your search
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
# Installs the latest vulp release for Linux x86_64.
|
||||
# Usage: curl -fsSL https://raw.githubusercontent.com/<owner>/<repo>/main/install/vulp-installer.sh | bash
|
||||
set -euo pipefail
|
||||
|
||||
REPO="${VULP_REPO:-dualfroz/fxg}"
|
||||
INSTALL_DIR="${VULP_INSTALL_DIR:-$HOME/.local/bin}"
|
||||
BIN_NAME="vulp"
|
||||
|
||||
os="$(uname -s)"
|
||||
arch="$(uname -m)"
|
||||
if [ "$os" != "Linux" ] || [ "$arch" != "x86_64" ]; then
|
||||
echo "vulp-installer: no prebuilt binary for $os/$arch (only Linux x86_64 is published)." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Fetching latest vulp release info from github.com/$REPO..."
|
||||
release_json="$(curl -fsSL "https://api.github.com/repos/$REPO/releases/latest")"
|
||||
asset_url="$(printf '%s' "$release_json" \
|
||||
| grep -o '"browser_download_url": *"[^"]*vulp-linux-x86_64[^"]*"' \
|
||||
| head -n1 \
|
||||
| sed -E 's/.*"(https:[^"]+)"/\1/')"
|
||||
|
||||
if [ -z "$asset_url" ]; then
|
||||
echo "vulp-installer: couldn't find a linux-x86_64 asset in the latest release." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
tmp="$(mktemp)"
|
||||
echo "Downloading $asset_url..."
|
||||
curl -fsSL "$asset_url" -o "$tmp"
|
||||
chmod +x "$tmp"
|
||||
mv "$tmp" "$INSTALL_DIR/$BIN_NAME"
|
||||
|
||||
case ":$PATH:" in
|
||||
*":$INSTALL_DIR:"*) ;;
|
||||
*)
|
||||
shell_rc=""
|
||||
case "${SHELL:-}" in
|
||||
*/zsh) shell_rc="$HOME/.zshrc" ;;
|
||||
*/bash) shell_rc="$HOME/.bashrc" ;;
|
||||
esac
|
||||
if [ -n "$shell_rc" ]; then
|
||||
echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> "$shell_rc"
|
||||
echo "Added $INSTALL_DIR to PATH in $shell_rc (restart your shell, or run: export PATH=\"$INSTALL_DIR:\$PATH\")"
|
||||
else
|
||||
echo "Add $INSTALL_DIR to your PATH to use 'vulp' from anywhere."
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Installed vulp to $INSTALL_DIR/$BIN_NAME"
|
||||
exec "$INSTALL_DIR/$BIN_NAME"
|
||||
Reference in new issue
Block a user