- Added 15 OrbitOS skills (bundled in skills/orbitos/) - Added vault structure templates (views, templates, prompts) - Added install.sh (macOS + Linux) - Removed references/orbitos-skills.md (no longer needed) - Updated README: 30 skills total, unified install flow Total: 9 mm* + 6 dependencies + 15 orbitos = 30 skills
202 lines
6.5 KiB
Bash
Executable File
202 lines
6.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# moreminimore-service-system installer
|
|
# Works on macOS and Linux
|
|
# Usage: bash install.sh [--vault-path PATH] [--skip-vault] [--skip-skills]
|
|
|
|
set -euo pipefail
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
# Defaults
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
VAULT_PATH="${VAULT_PATH:-$HOME/vault}"
|
|
HERMES_HOME="${HERMES_HOME:-$HOME/.hermes}"
|
|
SKIP_VAULT=false
|
|
SKIP_SKILLS=false
|
|
|
|
# Parse args
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--vault-path) VAULT_PATH="$2"; shift 2 ;;
|
|
--skip-vault) SKIP_VAULT=true; shift ;;
|
|
--skip-skills) SKIP_SKILLS=true; shift ;;
|
|
--help|-h)
|
|
echo "Usage: bash install.sh [OPTIONS]"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " --vault-path PATH Vault location (default: ~/vault)"
|
|
echo " --skip-vault Don't copy vault templates"
|
|
echo " --skip-skills Don't copy skills"
|
|
echo " --help Show this help"
|
|
exit 0
|
|
;;
|
|
*) echo "Unknown option: $1"; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo " moreminimore-service-system installer"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
echo " Vault: $VAULT_PATH"
|
|
echo " Hermes: $HERMES_HOME"
|
|
echo ""
|
|
|
|
# Detect OS
|
|
OS="$(uname -s)"
|
|
case "$OS" in
|
|
Darwin) PLATFORM="macos" ;;
|
|
Linux) PLATFORM="linux" ;;
|
|
*) echo -e "${RED}Unsupported OS: $OS${NC}"; exit 1 ;;
|
|
esac
|
|
echo -e "${GREEN}✓ Detected: $PLATFORM${NC}"
|
|
|
|
# ─── 1. Install skills ───────────────────────────────────────────
|
|
|
|
if [ "$SKIP_SKILLS" = false ]; then
|
|
echo ""
|
|
echo "── Installing skills ──"
|
|
|
|
SKILLS_DIR="$HERMES_HOME/skills"
|
|
mkdir -p "$SKILLS_DIR"
|
|
|
|
# mm* skills (9)
|
|
for skill_dir in "$SCRIPT_DIR"/skills/mm-*/; do
|
|
[ -d "$skill_dir" ] || continue
|
|
skill_name=$(basename "$skill_dir")
|
|
cp -r "$skill_dir" "$SKILLS_DIR/"
|
|
echo -e " ${GREEN}✓${NC} $skill_name"
|
|
done
|
|
|
|
# Dependency skills (6)
|
|
for skill in content-writer geo-optimizer post-formatter hook-generator graphic-designer; do
|
|
src="$SCRIPT_DIR/skills/$skill"
|
|
if [ -d "$src" ]; then
|
|
cp -r "$src" "$SKILLS_DIR/"
|
|
echo -e " ${GREEN}✓${NC} $skill (dependency)"
|
|
fi
|
|
done
|
|
|
|
# xurl
|
|
if [ -d "$SCRIPT_DIR/skills/xurl" ]; then
|
|
mkdir -p "$SKILLS_DIR/social-media"
|
|
cp -r "$SCRIPT_DIR/skills/xurl" "$SKILLS_DIR/social-media/"
|
|
echo -e " ${GREEN}✓${NC} xurl (dependency)"
|
|
fi
|
|
|
|
# OrbitOS skills (15)
|
|
for skill_dir in "$SCRIPT_DIR"/skills/orbitos/*/; do
|
|
[ -d "$skill_dir" ] || continue
|
|
skill_name=$(basename "$skill_dir")
|
|
cp -r "$skill_dir" "$SKILLS_DIR/"
|
|
echo -e " ${GREEN}✓${NC} $skill_name (orbitos)"
|
|
done
|
|
|
|
echo -e "${GREEN}✓ All skills installed${NC}"
|
|
else
|
|
echo -e "${YELLOW}⏭ Skipping skills${NC}"
|
|
fi
|
|
|
|
# ─── 2. Setup vault ──────────────────────────────────────────────
|
|
|
|
if [ "$SKIP_VAULT" = false ]; then
|
|
echo ""
|
|
echo "── Setting up vault ──"
|
|
|
|
mkdir -p "$VAULT_PATH"
|
|
|
|
# Copy vault structure (don't overwrite existing files)
|
|
for dir in 00_Inbox 10_Daily 20_Projects 30_Research 40_Wiki 50_Resources 60_Articles 90_Plans 99_System; do
|
|
src="$SCRIPT_DIR/vault-structure/$dir"
|
|
if [ -d "$src" ]; then
|
|
mkdir -p "$VAULT_PATH/$dir"
|
|
# Copy files that don't exist
|
|
find "$src" -type f | while read -r file; do
|
|
rel="${file#$src/}"
|
|
dest="$VAULT_PATH/$dir/$rel"
|
|
if [ ! -f "$dest" ]; then
|
|
mkdir -p "$(dirname "$dest")"
|
|
cp "$file" "$dest"
|
|
fi
|
|
done
|
|
echo -e " ${GREEN}✓${NC} $dir/"
|
|
fi
|
|
done
|
|
|
|
# Copy root vault files (don't overwrite)
|
|
for file in .hermes.md AGENTS.md .gitignore; do
|
|
src="$SCRIPT_DIR/vault-structure/$file"
|
|
dest="$VAULT_PATH/$file"
|
|
if [ -f "$src" ] && [ ! -f "$dest" ]; then
|
|
cp "$src" "$dest"
|
|
echo -e " ${GREEN}✓${NC} $file"
|
|
fi
|
|
done
|
|
|
|
# Copy views (don't overwrite)
|
|
if [ -d "$SCRIPT_DIR/vault-structure/views" ]; then
|
|
mkdir -p "$VAULT_PATH/views"
|
|
cp -n "$SCRIPT_DIR/vault-structure/views/"*.yml "$VAULT_PATH/views/" 2>/dev/null || true
|
|
echo -e " ${GREEN}✓${NC} views/"
|
|
fi
|
|
|
|
# Copy .obsidian config (don't overwrite)
|
|
if [ -d "$SCRIPT_DIR/vault-structure/.obsidian" ]; then
|
|
mkdir -p "$VAULT_PATH/.obsidian"
|
|
cp -n "$SCRIPT_DIR/vault-structure/.obsidian/"*.json "$VAULT_PATH/.obsidian/" 2>/dev/null || true
|
|
echo -e " ${GREEN}✓${NC} .obsidian/"
|
|
fi
|
|
|
|
echo -e "${GREEN}✓ Vault structure ready${NC}"
|
|
else
|
|
echo -e "${YELLOW}⏭ Skipping vault${NC}"
|
|
fi
|
|
|
|
# ─── 3. Setup config ─────────────────────────────────────────────
|
|
|
|
echo ""
|
|
echo "── Setting up config ──"
|
|
|
|
CONFIG_FILE="$VAULT_PATH/99_System/clients-config.json"
|
|
CONFIG_TEMPLATE="$SCRIPT_DIR/config/clients-config.template.json"
|
|
|
|
if [ ! -f "$CONFIG_FILE" ]; then
|
|
if [ -f "$CONFIG_TEMPLATE" ]; then
|
|
mkdir -p "$VAULT_PATH/99_System"
|
|
cp "$CONFIG_TEMPLATE" "$CONFIG_FILE"
|
|
echo -e " ${GREEN}✓${NC} clients-config.json created from template"
|
|
echo -e " ${YELLOW}⚠ Edit $CONFIG_FILE to add credentials${NC}"
|
|
fi
|
|
else
|
|
echo -e " ${GREEN}✓${NC} clients-config.json already exists"
|
|
fi
|
|
|
|
# ─── 4. Make scripts executable ──────────────────────────────────
|
|
|
|
echo ""
|
|
echo "── Scripts ──"
|
|
chmod +x "$SCRIPT_DIR/scripts/"*.sh 2>/dev/null || true
|
|
chmod +x "$SCRIPT_DIR/scripts/"*.py 2>/dev/null || true
|
|
echo -e " ${GREEN}✓${NC} Scripts are executable"
|
|
|
|
# ─── Done ────────────────────────────────────────────────────────
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo -e " ${GREEN}✓ Installation complete!${NC}"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
echo " Skills: $HERMES_HOME/skills/"
|
|
echo " Vault: $VAULT_PATH/"
|
|
echo " Config: $CONFIG_FILE"
|
|
echo ""
|
|
echo " Next steps:"
|
|
echo " 1. Edit $CONFIG_FILE with your credentials"
|
|
echo " 2. Run: mm idea: [topic] to start"
|
|
echo ""
|