gabriel / muse public
install-omzsh-plugin.sh bash
76 lines 3.2 KB
Raw
sha256:c0eba5ad689cec79f4a3fcdc4f5da78556cb4b8cb7b330f944634356c10379ed chore: pivot to nightly channel — bump version to 0.2.0.dev… Sonnet 5 patch 12 days ago
1 #!/usr/bin/env bash
2 # install-omzsh-plugin.sh — Install the Muse Oh My ZSH plugin
3 # ─────────────────────────────────────────────────────────────
4 # Run from the muse repo root:
5 # bash tools/install-omzsh-plugin.sh
6 #
7 # What it does:
8 # 1. Locates the Oh My ZSH custom plugin directory
9 # (respects $ZSH_CUSTOM if set, otherwise ~/.oh-my-zsh/custom)
10 # 2. Creates the muse/ subdirectory inside plugins/
11 # 3. Symlinks muse.plugin.zsh and _muse from tools/omzsh-plugin/
12 # so updates to the Muse repo automatically update the plugin
13 # 4. Prints the one line you need to add to ~/.zshrc
14 #
15 # To uninstall:
16 # rm -rf "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/muse"
17
18 set -euo pipefail
19
20 # ── Resolve paths ─────────────────────────────────────────────────────────────
21
22 REPO_DIR="$(cd "$(dirname "$0")/.." && pwd)"
23 PLUGIN_SRC="$REPO_DIR/tools/omzsh-plugin"
24
25 # Respect $ZSH_CUSTOM if the user has set it (e.g. for Zinit, Antigen, etc.)
26 ZSH_CUSTOM_DIR="${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}"
27 PLUGIN_DST="$ZSH_CUSTOM_DIR/plugins/muse"
28
29 # ── Sanity checks ─────────────────────────────────────────────────────────────
30
31 if [[ ! -f "$PLUGIN_SRC/muse.plugin.zsh" ]]; then
32 echo "ERROR: Plugin source not found at $PLUGIN_SRC/muse.plugin.zsh" >&2
33 echo " Run this script from the muse repository root." >&2
34 exit 1
35 fi
36
37 if [[ ! -d "$ZSH_CUSTOM_DIR" ]]; then
38 echo "ERROR: Oh My ZSH custom directory not found at $ZSH_CUSTOM_DIR" >&2
39 echo " Install Oh My ZSH first: https://ohmyz.sh" >&2
40 echo " Or set \$ZSH_CUSTOM to your custom plugin directory." >&2
41 exit 1
42 fi
43
44 if ! command -v python3 >/dev/null 2>&1; then
45 echo "WARNING: python3 not found in PATH." >&2
46 echo " The plugin requires python3 for JSON/TOML parsing." >&2
47 echo " Install it before using the plugin." >&2
48 fi
49
50 # ── Create plugin directory and symlinks ──────────────────────────────────────
51
52 mkdir -p "$PLUGIN_DST"
53
54 # Use -f to replace existing symlinks (handles re-runs and updates cleanly).
55 ln -sf "$PLUGIN_SRC/muse.plugin.zsh" "$PLUGIN_DST/muse.plugin.zsh"
56 ln -sf "$PLUGIN_SRC/_muse" "$PLUGIN_DST/_muse"
57
58 # ── Report ────────────────────────────────────────────────────────────────────
59
60 echo ""
61 echo " Muse Oh My ZSH plugin installed"
62 echo ""
63 echo " plugin dir $PLUGIN_DST"
64 echo " source $PLUGIN_SRC (symlinked — updates automatically)"
65 echo ""
66 echo " Next step: add 'muse' to the plugins array in your ~/.zshrc:"
67 echo ""
68 echo " plugins=(git muse)"
69 echo ""
70 echo " Then reload your shell:"
71 echo ""
72 echo " source ~/.zshrc"
73 echo ""
74
75 echo " Full docs: docs/reference/omzsh-plugin.md"
76 echo ""
File History 10 commits
sha256:c287f599c5429903a139eadf3c5db5d930520e57cb0c3c575d9570e953c3b2d6 chore: bump version to 0.2.0.dev2 — nightly.2 Sonnet 4.6 patch 11 days ago
sha256:8de4334a98c945aace420969d389ad678aa926d4ab4e886b2ac4c4241cb3bf2b revert: keep pyproject.toml in canonical PEP 440 form Sonnet 4.6 patch 14 days ago
sha256:50bb615c573aa4b928fca75b60f82ba2a659910066507cec6a95c412ae22ccb9 docs: add issue docs for push have-negotiation bug (#55) an… Sonnet 4.6 18 days ago
sha256:d90d175cded68aae1d4ffcf4858917854195d0cd8ce1fe73cee4dbc02541cb74 chore: trigger push to surface null-OID paths Sonnet 4.6 23 days ago
sha256:e452ad9a6ace6ccc6d875a35e06caf9da5576a970c1c36133b69a891ce5fefa8 chore: prebuild timing test Sonnet 4.6 33 days ago
sha256:0008ab6695e3e064b3e236b24fd19e538fef6a588eb0d211622f4466d919c0b1 merge: pull staging/dev — advance to 0.2.0rc12 Sonnet 4.6 patch 35 days ago
sha256:9c33d61749fff814c5226d5386aa2af7064c2c02788594a25fdd709358132eea fix: _PROPOSAL_PREFIX_RESOLVE_LIMIT 200 → 100 to match hub … Sonnet 4.6 47 days ago
sha256:36c3cb3e76619d4c30a6d9bf81b5ec4ff148e30dcfed913e3114ca7b43b81c7e fix: rename objects→blobs in push client and all stale test… Sonnet 4.6 patch 49 days ago
sha256:c06a9b9b9fee26c68ea725b44d54b2c0a171301ce9de746d5b656617b4463a9a fix: repair four test failures from post-migration audit Sonnet 4.6 patch 56 days ago
sha256:1900655993c83c4107067375548a7be823e471d2515830842f1a12cba4bd3cdf fix: unified object store migration — idempotent writes, JS… Sonnet 4.6 minor 56 days ago