/ keet-cli / install-sos.sh
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 ""