161 lines
5.1 KiB
Bash
Executable File
161 lines
5.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/../lib/common.sh"
|
|
source "$SCRIPT_DIR/../lib/package.sh"
|
|
|
|
log_info "Installing applications"
|
|
|
|
# VSCodium
|
|
if command_exists codium || command_exists code; then
|
|
log_success "VSCodium/VSCode already installed"
|
|
else
|
|
log_info "Installing VSCodium"
|
|
case "$OS_TYPE" in
|
|
macos)
|
|
install_cask vscodium
|
|
;;
|
|
debian)
|
|
wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg \
|
|
| gpg --dearmor \
|
|
| maybe_sudo dd of=/usr/share/keyrings/vscodium-archive-keyring.gpg
|
|
echo 'deb [ signed-by=/usr/share/keyrings/vscodium-archive-keyring.gpg ] https://download.vscodium.com/debs vscodium main' \
|
|
| maybe_sudo tee /etc/apt/sources.list.d/vscodium.list
|
|
update_package_cache
|
|
install_package codium
|
|
;;
|
|
arch)
|
|
install_aur vscodium-bin
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# 1Password
|
|
if command_exists 1password || [ -d "/Applications/1Password.app" ] 2>/dev/null; then
|
|
log_success "1Password already installed"
|
|
else
|
|
log_info "Installing 1Password"
|
|
case "$OS_TYPE" in
|
|
macos)
|
|
install_cask 1password
|
|
;;
|
|
debian)
|
|
curl -sS https://downloads.1password.com/linux/keys/1password.asc | \
|
|
maybe_sudo gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] https://downloads.1password.com/linux/debian/$(dpkg --print-architecture) stable main" | \
|
|
maybe_sudo tee /etc/apt/sources.list.d/1password.list
|
|
maybe_sudo mkdir -p /etc/debsig/policies/AC2D62742012EA22/
|
|
curl -sS https://downloads.1password.com/linux/debian/debsig/1password.pol | \
|
|
maybe_sudo tee /etc/debsig/policies/AC2D62742012EA22/1password.pol
|
|
maybe_sudo mkdir -p /usr/share/debsig/keyrings/AC2D62742012EA22
|
|
curl -sS https://downloads.1password.com/linux/keys/1password.asc | \
|
|
maybe_sudo gpg --dearmor --output /usr/share/debsig/keyrings/AC2D62742012EA22/debsig.gpg
|
|
update_package_cache
|
|
install_package 1password
|
|
;;
|
|
arch)
|
|
install_aur 1password
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# Obsidian
|
|
if command_exists obsidian || [ -d "/Applications/Obsidian.app" ] 2>/dev/null; then
|
|
log_success "Obsidian already installed"
|
|
else
|
|
log_info "Installing Obsidian"
|
|
case "$OS_TYPE" in
|
|
macos)
|
|
install_cask obsidian
|
|
;;
|
|
debian)
|
|
TEMP_DIR=$(mktemp -d)
|
|
cd "$TEMP_DIR"
|
|
wget -q "https://github.com/obsidianmd/obsidian-releases/releases/download/v1.5.3/obsidian_1.5.3_amd64.deb"
|
|
maybe_sudo dpkg -i obsidian_*.deb
|
|
maybe_sudo apt-get install -f -y
|
|
cd -
|
|
rm -rf "$TEMP_DIR"
|
|
;;
|
|
arch)
|
|
install_aur obsidian
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# Google Chrome
|
|
if command_exists google-chrome || command_exists google-chrome-stable || [ -d "/Applications/Google Chrome.app" ] 2>/dev/null; then
|
|
log_success "Google Chrome already installed"
|
|
else
|
|
log_info "Installing Google Chrome"
|
|
case "$OS_TYPE" in
|
|
macos)
|
|
install_cask google-chrome
|
|
;;
|
|
debian)
|
|
TEMP_DIR=$(mktemp -d)
|
|
cd "$TEMP_DIR"
|
|
wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
|
maybe_sudo dpkg -i google-chrome-stable_current_amd64.deb
|
|
maybe_sudo apt-get install -f -y
|
|
cd -
|
|
rm -rf "$TEMP_DIR"
|
|
;;
|
|
arch)
|
|
install_aur google-chrome
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# Todoist
|
|
if command_exists todoist || [ -d "/Applications/Todoist.app" ] 2>/dev/null; then
|
|
log_success "Todoist already installed"
|
|
else
|
|
log_info "Installing Todoist"
|
|
case "$OS_TYPE" in
|
|
macos)
|
|
install_cask todoist
|
|
;;
|
|
debian)
|
|
# Install via snap
|
|
if ! command_exists snap; then
|
|
log_info "Installing snapd"
|
|
maybe_sudo apt-get install -y snapd
|
|
fi
|
|
maybe_sudo snap install todoist
|
|
;;
|
|
arch)
|
|
install_aur todoist-appimage
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# Claude Desktop
|
|
if [ -d "/Applications/Claude.app" ] 2>/dev/null || command_exists claude; then
|
|
log_success "Claude Desktop already installed"
|
|
else
|
|
log_info "Installing Claude Desktop"
|
|
case "$OS_TYPE" in
|
|
macos)
|
|
install_cask claude
|
|
;;
|
|
debian)
|
|
# Install via snap (unofficial community build)
|
|
if ! command_exists snap; then
|
|
log_info "Installing snapd"
|
|
maybe_sudo apt-get install -y snapd
|
|
fi
|
|
maybe_sudo snap install claudeai-desktop
|
|
;;
|
|
arch)
|
|
install_aur claude-desktop
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
|
|
|
|
|
|
log_success "Applications installed"
|