62 lines · 1700 bytes
1 #!/usr/bin/env sh
2 set -e
3
4 HOST="${OPENHUB_HOST:-git.botnet.pub}"
5 BASE_URL="https://${HOST}"
6
7 echo "openhub installer"
8 echo "================="
9 echo ""
10
11 # 1. Check SSH key
12 if [ ! -f "$HOME/.ssh/id_ed25519" ]; then
13 echo "No SSH key found at ~/.ssh/id_ed25519"
14 echo "Generating one now..."
15 mkdir -p "$HOME/.ssh"
16 ssh-keygen -t ed25519 -f "$HOME/.ssh/id_ed25519" -N "" -q
17 echo "SSH key generated."
18 else
19 echo "SSH key found: ~/.ssh/id_ed25519"
20 fi
21 echo ""
22
23 # 2. Install CLI
24 if command -v cargo >/dev/null 2>&1; then
25 echo "Installing openhub CLI via cargo..."
26 cargo install --git "https://${HOST}/montana/openhub.git" --path cli
27 echo ""
28 else
29 echo "cargo not found — install Rust from https://rustup.rs to get the CLI"
30 echo ""
31 fi
32
33 # 3. SSH config
34 SSH_CONFIG="$HOME/.ssh/config"
35 if [ ! -f "$SSH_CONFIG" ] || ! grep -q "Host ${HOST}" "$SSH_CONFIG" 2>/dev/null; then
36 echo "Adding SSH config for ${HOST}..."
37 mkdir -p "$HOME/.ssh"
38 cat >> "$SSH_CONFIG" <<SSHEOF
39
40 Host ${HOST}
41 User git
42 SSHEOF
43 chmod 600 "$SSH_CONFIG"
44 echo "SSH config updated."
45 else
46 echo "SSH config already contains ${HOST}"
47 fi
48 echo ""
49
50 # 4. Credential helper
51 mkdir -p "$HOME/.local/bin"
52 echo "Installing git credential helper..."
53 curl -fsSL "${BASE_URL}/scripts/git-credential-openhub" -o "$HOME/.local/bin/git-credential-openhub"
54 chmod +x "$HOME/.local/bin/git-credential-openhub"
55 git config --global "credential.${BASE_URL}.helper" openhub
56 git config --global "credential.${BASE_URL}.useHttpPath" true
57 echo ""
58
59 echo "Setup complete! Next:"
60 echo " openhub register # create your account"
61 echo " openhub login # authenticate"
62 echo " openhub repo new my-project"