AkurAI Build
Menu

Public repository / d63e826eb482cb963477774b04fe8a84f23f0e45

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>"