40 lines
1.0 KiB
Bash
40 lines
1.0 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
sudo pacman --needed --noconfirm -S git rustup protobuf gcc
|
||
|
|
rustup toolchain install stable
|
||
|
|
|
||
|
|
WORK=/opt/navka
|
||
|
|
if [ ! -d "$WORK" ]; then sudo git clone ssh://git@scm.bstein.dev:2242/brad_stein/navka.git "$WORK"; fi
|
||
|
|
cd "$WORK" && sudo git pull
|
||
|
|
|
||
|
|
cargo build --release --manifest-path server/Cargo.toml
|
||
|
|
sudo install -Dm755 target/release/navka-server /usr/local/bin/navka-server
|
||
|
|
sudo install -Dm755 gadget/navka-gadget.sh /usr/local/bin/navka-gadget.sh
|
||
|
|
|
||
|
|
cat <<'EOF' | sudo tee /etc/systemd/system/navka-server.service
|
||
|
|
[Unit]
|
||
|
|
After=network.target navka-gadget.service
|
||
|
|
[Service]
|
||
|
|
ExecStart=/usr/local/bin/navka-server
|
||
|
|
Restart=always
|
||
|
|
User=root
|
||
|
|
[Install]
|
||
|
|
WantedBy=multi-user.target
|
||
|
|
EOF
|
||
|
|
|
||
|
|
cat <<'EOF' | sudo tee /etc/systemd/system/navka-gadget.service
|
||
|
|
[Unit]
|
||
|
|
Description=USB Gadget
|
||
|
|
[Service]
|
||
|
|
Type=oneshot
|
||
|
|
ExecStart=/usr/local/bin/navka-gadget.sh
|
||
|
|
RemainAfterExit=yes
|
||
|
|
[Install]
|
||
|
|
WantedBy=multi-user.target
|
||
|
|
EOF
|
||
|
|
|
||
|
|
sudo systemctl daemon-reload
|
||
|
|
sudo systemctl enable --now navka-gadget.service navka-server.service
|
||
|
|
echo "navka-server installed."
|