Menu
Public repository / 566f70b61f51cea96707b4998492e997f272d865
AkurAI-Drive / client/install.sh
Latest change feb7ac86b5e60d55b429eacb7146cf0dc32c6628 - Add native Linux sync client (akurai-drive-sync) by olibuijr
#!/usr/bin/env bash
set -euo pipefail
# Install the AkurAI Drive sync client for the current user:
# - build the release binary
# - copy it to ~/.local/bin
# - install the .desktop entry and the systemd --user service
#
# Run from anywhere; paths are resolved relative to this script.
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BIN_NAME="akurai-drive-sync"
BIN_DIR="${HOME}/.local/bin"
DESKTOP_DIR="${HOME}/.local/share/applications"
SYSTEMD_DIR="${HOME}/.config/systemd/user"
log() { echo "[install] $*"; }
log "Building release binary..."
( cd "$SCRIPT_DIR" && cargo build --release )
log "Installing binary -> ${BIN_DIR}/${BIN_NAME}"
mkdir -p "$BIN_DIR"
install -m 755 "${SCRIPT_DIR}/target/release/${BIN_NAME}" "${BIN_DIR}/${BIN_NAME}"
log "Installing desktop entry -> ${DESKTOP_DIR}"
mkdir -p "$DESKTOP_DIR"
install -m 644 "${SCRIPT_DIR}/${BIN_NAME}.desktop" "${DESKTOP_DIR}/${BIN_NAME}.desktop"
log "Installing systemd --user service -> ${SYSTEMD_DIR}"
mkdir -p "$SYSTEMD_DIR"
install -m 644 "${SCRIPT_DIR}/systemd/${BIN_NAME}.service" "${SYSTEMD_DIR}/${BIN_NAME}.service"
if command -v systemctl >/dev/null 2>&1; then
systemctl --user daemon-reload || true
log "Service installed. Enable it after \`${BIN_NAME} login\` + \`${BIN_NAME} init\`:"
log " systemctl --user enable --now ${BIN_NAME}.service"
else
log "systemctl not found — skipped daemon-reload."
fi
case ":${PATH}:" in
*":${BIN_DIR}:"*) ;;
*) log "NOTE: ${BIN_DIR} is not on your PATH; add it to use \`${BIN_NAME}\` directly." ;;
esac
log "Done. Next steps:"
log " ${BIN_NAME} login"
log " ${BIN_NAME} buckets"
log " ${BIN_NAME} init ~/AkurAIDrive --bucket <bucket-name>"