AkurAI Build
Menu

Public repository / 19126b373cd637ce1c055d17f2198a09424fe140

AkurAI-Drive / desktop/install.sh

Latest change 2d36cd6c72fc6a63a7edb87bb54a4020e50f2f8a - desktop: Tauri v2 tray + Google-Drive-style file browser app by olibuijr

#!/usr/bin/env bash
# Build AkurAI Drive (release) and install it for the current user:
#   • binary  → ~/.local/bin/akurai-drive
#   • icons   → ~/.local/share/icons/hicolor/{128x128,256x256,512x512}/apps/
#   • launcher→ ~/.local/share/applications/akurai-drive.desktop
#   • autostart (launches to the tray on login) → ~/.config/autostart/akurai-drive.desktop
#
# Re-runnable (idempotent). No root required.
set -euo pipefail

HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SRC_TAURI="$HERE/src-tauri"
BIN_NAME="akurai-drive"
APP_ID="akurai-drive"

BIN_DIR="$HOME/.local/bin"
APP_DIR="$HOME/.local/share/applications"
ICON_BASE="$HOME/.local/share/icons/hicolor"
AUTOSTART_DIR="$HOME/.config/autostart"

echo "==> Building AkurAI Drive (release)…"
( cd "$SRC_TAURI" && cargo build --release )

BUILT="$SRC_TAURI/target/release/akurai-drive-desktop"
if [[ ! -x "$BUILT" ]]; then
  echo "!! build did not produce $BUILT" >&2
  exit 1
fi

echo "==> Installing binary → $BIN_DIR/$BIN_NAME"
mkdir -p "$BIN_DIR"
install -m 0755 "$BUILT" "$BIN_DIR/$BIN_NAME"

echo "==> Installing icons"
declare -A ICONS=( [128x128]="128x128.png" [256x256]="128x128@2x.png" [512x512]="icon.png" )
for size in "${!ICONS[@]}"; do
  dest="$ICON_BASE/$size/apps"
  mkdir -p "$dest"
  install -m 0644 "$SRC_TAURI/icons/${ICONS[$size]}" "$dest/$APP_ID.png"
done
# Refresh the icon cache if the tool is available (best-effort).
command -v gtk-update-icon-cache >/dev/null 2>&1 && gtk-update-icon-cache -f -t "$ICON_BASE" >/dev/null 2>&1 || true

echo "==> Installing launcher → $APP_DIR/$APP_ID.desktop"
mkdir -p "$APP_DIR"
install -m 0644 "$HERE/$APP_ID.desktop" "$APP_DIR/$APP_ID.desktop"

echo "==> Installing autostart entry → $AUTOSTART_DIR/$APP_ID.desktop"
mkdir -p "$AUTOSTART_DIR"
# Same launcher, marked for autostart (app starts hidden in the tray).
{
  cat "$HERE/$APP_ID.desktop"
  echo "X-GNOME-Autostart-enabled=true"
} > "$AUTOSTART_DIR/$APP_ID.desktop"
chmod 0644 "$AUTOSTART_DIR/$APP_ID.desktop"

command -v update-desktop-database >/dev/null 2>&1 && update-desktop-database "$APP_DIR" >/dev/null 2>&1 || true

cat <<EOF

✓ Installed.
  Binary    : $BIN_DIR/$BIN_NAME
  Launcher  : $APP_DIR/$APP_ID.desktop
  Autostart : $AUTOSTART_DIR/$APP_ID.desktop  (launches to the tray on login)
  Logs      : ${XDG_STATE_HOME:-$HOME/.local/state}/akurai-drive/desktop.log

Make sure ~/.local/bin is on your PATH. Launch from your app menu (AkurAI Drive)
or run: $BIN_NAME
EOF