131 lines
3.2 KiB
Bash
Executable File
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
|