Files
provision/scripts/update-apps.sh
2026-01-22 20:54:36 -08:00

131 lines
3.2 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"
# Parse command line arguments
APP_NAME="${1:-all}"
update_obsidian() {
log_info "Updating Obsidian"
case "$OS_TYPE" in
macos)
brew upgrade --cask obsidian || log_warn "Obsidian may already be up to date"
;;
debian)
local obsidian_url=$(get_latest_github_release_url "obsidianmd/obsidian-releases" "_amd64.deb")
install_deb_from_url "$obsidian_url"
;;
arch)
install_aur obsidian
;;
esac
log_success "Obsidian updated"
}
update_chrome() {
log_info "Updating Google Chrome"
case "$OS_TYPE" in
macos)
brew upgrade --cask google-chrome || log_warn "Chrome may already be up to date"
;;
debian)
install_deb_from_url "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb"
;;
arch)
install_aur google-chrome
;;
esac
log_success "Google Chrome updated"
}
update_vscodium() {
log_info "Updating VSCodium"
case "$OS_TYPE" in
macos)
brew upgrade --cask vscodium || log_warn "VSCodium may already be up to date"
;;
debian)
update_package_cache
install_package codium
;;
arch)
install_aur vscodium-bin
;;
esac
log_success "VSCodium updated"
}
update_1password() {
log_info "Updating 1Password"
case "$OS_TYPE" in
macos)
brew upgrade --cask 1password || log_warn "1Password may already be up to date"
;;
debian)
update_package_cache
install_package 1password
;;
arch)
install_aur 1password
;;
esac
log_success "1Password updated"
}
update_todoist() {
log_info "Updating Todoist"
case "$OS_TYPE" in
macos)
brew upgrade --cask todoist || log_warn "Todoist may already be up to date"
;;
debian)
if command_exists snap; then
maybe_sudo snap refresh todoist
else
log_warn "snapd not installed, skipping Todoist"
fi
;;
arch)
install_aur todoist-appimage
;;
esac
log_success "Todoist updated"
}
# Main logic
case "$APP_NAME" in
obsidian)
update_obsidian
;;
chrome|google-chrome)
update_chrome
;;
vscodium|codium)
update_vscodium
;;
1password)
update_1password
;;
todoist)
update_todoist
;;
all)
log_info "Updating all applications"
update_vscodium
update_1password
update_obsidian
update_chrome
update_todoist
log_success "All applications updated"
;;
*)
log_error "Unknown application: $APP_NAME"
echo "Usage: $0 [app-name|all]"
echo "Available apps: obsidian, chrome, vscodium, 1password, todoist, all"
exit 1
;;
esac