install-sos.sh
1 #!/bin/bash 2 # 3 # Install the 'sos' command globally 4 # 5 # This creates a symlink in /usr/local/bin so you can run 'sos' from anywhere. 6 # 7 8 set -e 9 10 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 11 SOS_SCRIPT="$SCRIPT_DIR/sos.js" 12 INSTALL_DIR="/usr/local/bin" 13 INSTALL_PATH="$INSTALL_DIR/sos" 14 15 echo "" 16 echo "╔═══════════════════════════════════════════════════════════╗" 17 echo "║ Installing Sovereign OS CLI (sos) ║" 18 echo "╚═══════════════════════════════════════════════════════════╝" 19 echo "" 20 21 # Check if sos.js exists 22 if [ ! -f "$SOS_SCRIPT" ]; then 23 echo "Error: sos.js not found at $SOS_SCRIPT" 24 exit 1 25 fi 26 27 # Make sure it's executable 28 chmod +x "$SOS_SCRIPT" 29 30 # Create wrapper script (handles Node path issues) 31 WRAPPER_CONTENT="#!/bin/bash 32 exec node \"$SOS_SCRIPT\" \"\$@\"" 33 34 echo "Creating sos command..." 35 36 # Check if we need sudo 37 if [ -w "$INSTALL_DIR" ]; then 38 echo "$WRAPPER_CONTENT" > "$INSTALL_PATH" 39 chmod +x "$INSTALL_PATH" 40 else 41 echo "Need sudo to write to $INSTALL_DIR" 42 echo "$WRAPPER_CONTENT" | sudo tee "$INSTALL_PATH" > /dev/null 43 sudo chmod +x "$INSTALL_PATH" 44 fi 45 46 echo "" 47 echo "✓ Installed: $INSTALL_PATH" 48 echo "" 49 echo "You can now run 'sos' from anywhere:" 50 echo "" 51 echo " sos init # Create new operator identity" 52 echo " sos pair # Add another device" 53 echo " sos join # Join existing mesh" 54 echo " sos status # Check status" 55 echo " sos start # Start mesh" 56 echo ""