- Well-structured - Seperate: Package mgrs, Helpers, Lang pkg mgrs - Add: Wider variety of package managers & distros
258 lines
7.6 KiB
Fish
258 lines
7.6 KiB
Fish
# Set manually
|
|
set -gx OS "fedora" # Choose OS
|
|
# set -gx HELPERS "snap flatpak" # Specify helper package managers, if any
|
|
set -gx LANG_HELPERS "cargo" # List of language package managers
|
|
|
|
# Auto-detect OS if not manually set
|
|
if not set -q OS
|
|
if test -f /etc/os-release
|
|
set -l distro (grep "^ID=" /etc/os-release | cut -d= -f2 | tr -d '"')
|
|
set -gx OS $distro
|
|
else if test (uname) = "FreeBSD"
|
|
set -gx OS "freebsd"
|
|
else if test (uname) = "OpenBSD"
|
|
set -gx OS "openbsd"
|
|
else if test (uname) = "NetBSD"
|
|
set -gx OS "netbsd"
|
|
else if test (uname) = "DragonFly"
|
|
set -gx OS "dragonfly"
|
|
else if test (uname) = "Redox"
|
|
set -gx OS "redox"
|
|
end
|
|
end
|
|
|
|
# Base OS package manager
|
|
switch $OS
|
|
case debian ubuntu linuxmint pop elementary neon zorin kali mx antix
|
|
alias inst="sudo apt-get install -y"
|
|
set updt "sudo apt-get update && sudo apt-get upgrade -y"
|
|
|
|
case arch manjaro endeavour arcolinux garuda parabola artix
|
|
alias inst="sudo pacman -S"
|
|
set updt "sudo pacman -Syuu --noconfirm"
|
|
|
|
case fedora rhel centos rocky almalinux oracle
|
|
alias inst="sudo dnf install -y"
|
|
set updt "sudo dnf upgrade -y"
|
|
|
|
case opensuse tumbleweed leap suse sles
|
|
alias inst="sudo zypper install -y"
|
|
set updt "sudo zypper refresh && sudo zypper update -y"
|
|
|
|
case void
|
|
alias inst="sudo xbps-install -Sy"
|
|
set updt "sudo xbps-install -Su"
|
|
|
|
case alpine
|
|
alias inst="sudo apk add"
|
|
set updt "sudo apk update && sudo apk upgrade"
|
|
|
|
case gentoo funtoo
|
|
alias inst="sudo emerge -av"
|
|
set updt "sudo emerge --sync && sudo emerge -avuDN @world"
|
|
|
|
case slackware
|
|
alias inst="sudo slackpkg install"
|
|
set updt "sudo slackpkg update && sudo slackpkg upgrade-all"
|
|
|
|
case nixos
|
|
alias inst="nix-env -iA"
|
|
set updt "sudo nix-channel --update && sudo nixos-rebuild switch"
|
|
|
|
case guix
|
|
alias inst="guix install"
|
|
set updt "guix pull && guix upgrade"
|
|
|
|
# BSD Family
|
|
case freebsd dragonfly
|
|
alias inst="sudo pkg install -y"
|
|
set updt "sudo pkg update && sudo pkg upgrade -y"
|
|
|
|
case openbsd
|
|
alias inst="doas pkg_add"
|
|
set updt "doas pkg_add -u"
|
|
|
|
case netbsd
|
|
alias inst="sudo pkgin install"
|
|
set updt "sudo pkgin update && sudo pkgin upgrade"
|
|
|
|
# Redox OS
|
|
case redox
|
|
alias inst="pkg install"
|
|
set updt "pkg upgrade"
|
|
|
|
# Unknown fallback
|
|
case '*'
|
|
alias inst="echo 'Unknown OS: please set aliases manually'"
|
|
set updt "echo 'Unknown OS: no update command'"
|
|
end
|
|
|
|
# Helpers (extra package managers)
|
|
# Multiple helpers allowed: e.g. set -gx HELPERS "snap flatpak yay"
|
|
if set -q HELPERS
|
|
for helper in $HELPERS
|
|
switch $helper
|
|
# Universal
|
|
case snap
|
|
set updt "$updt && sudo snap refresh"
|
|
case flatpak
|
|
set updt "$updt && flatpak update -y"
|
|
case appimage
|
|
set updt "$updt && echo 'Update AppImages manually or with appimageupdatetool'"
|
|
case brew
|
|
set updt "$updt && brew update && brew upgrade"
|
|
|
|
# Arch AUR Helpers
|
|
case yay
|
|
set updt "$updt && yay -Syu --noconfirm"
|
|
case paru
|
|
set updt "$updt && paru -Syu --noconfirm"
|
|
case trizen
|
|
set updt "$updt && trizen -Syu --noconfirm"
|
|
case pacaur
|
|
set updt "$updt && pacaur -Syu --noconfirm"
|
|
|
|
# Fedora / RHEL Helpers
|
|
case rpm-ostree
|
|
set updt "$updt && sudo rpm-ostree upgrade"
|
|
case copr
|
|
set updt "$updt && echo 'COPR repos update automatically with dnf upgrade'"
|
|
|
|
# openSUSE Helpers
|
|
case oneclick
|
|
set updt "$updt && echo 'Use YaST or zypper for OneClick updates'"
|
|
case osc
|
|
set updt "$updt && osc up"
|
|
|
|
# Slackware Helpers
|
|
case slackpkg+
|
|
set updt "$updt && slackpkg update gpg && slackpkg update && slackpkg upgrade-all"
|
|
|
|
# Portable/Other
|
|
case pkgsrc
|
|
set updt "$updt && sudo pkgin update && sudo pkgin upgrade"
|
|
case spack
|
|
set updt "$updt && spack update && spack upgrade"
|
|
end
|
|
end
|
|
end
|
|
|
|
# Language / toolchain managers
|
|
# Multiple allowed: e.g. set -gx LANG_HELPERS "cargo npm pip gem"
|
|
|
|
if set -q LANG_HELPERS
|
|
for lang in $LANG_HELPERS
|
|
switch $lang
|
|
# Rust
|
|
case cargo
|
|
set updt "$updt && rustup update"
|
|
|
|
# Node.js
|
|
case npm
|
|
set updt "$updt && npm update -g && npm install -g npm"
|
|
|
|
case yarn
|
|
set updt "$updt && yarn global upgrade"
|
|
|
|
case pnpm
|
|
set updt "$updt && pnpm add -g npm && pnpm update -g"
|
|
|
|
# Python
|
|
case pip
|
|
set updt "$updt && pip install --upgrade pip setuptools wheel && pip list --outdated --format=freeze | cut -d'=' -f1 | xargs -n1 pip install -U"
|
|
|
|
case pipx
|
|
set updt "$updt && pipx upgrade-all"
|
|
|
|
# Ruby
|
|
case gem
|
|
set updt "$updt && gem update --system && gem update"
|
|
|
|
case bundler
|
|
set updt "$updt && bundle update"
|
|
|
|
# Go
|
|
case go
|
|
set updt "$updt && go install all"
|
|
|
|
# PHP
|
|
case composer
|
|
set updt "$updt && composer self-update && composer global update"
|
|
|
|
# Java
|
|
case sdkman
|
|
set updt "$updt && sdk update && sdk upgrade"
|
|
|
|
# Haskell
|
|
case cabal
|
|
set updt "$updt && cabal update && cabal install --lib --upgrade-dependencies"
|
|
|
|
case stack
|
|
set updt "$updt && stack upgrade && stack update"
|
|
|
|
# Elixir / Erlang
|
|
case mix
|
|
set updt "$updt && mix local.hex --force && mix local.rebar --force && mix deps.update --all"
|
|
|
|
case rebar
|
|
set updt "$updt && rebar3 update"
|
|
|
|
# Perl
|
|
case cpan
|
|
set updt "$updt && cpan -u"
|
|
|
|
case cpanm
|
|
set updt "$updt && cpan-outdated -p | xargs cpanm"
|
|
|
|
# .NET
|
|
case dotnet
|
|
set updt "$updt && dotnet tool update --global --all"
|
|
|
|
# Julia
|
|
case julia
|
|
set updt "$updt && julia -e 'using Pkg; Pkg.update()'"
|
|
|
|
# R
|
|
case cran
|
|
set updt "$updt && R -q -e 'update.packages(ask=FALSE, repos=\"https://cloud.r-project.org\")'"
|
|
|
|
# Lua
|
|
case luarocks
|
|
set updt "$updt && luarocks install --server=https://luarocks.org/dev"
|
|
|
|
# Scala
|
|
case coursier
|
|
set updt "$updt && cs update"
|
|
|
|
# Dart / Flutter
|
|
case dart
|
|
set updt "$updt && dart pub upgrade"
|
|
|
|
case flutter
|
|
set updt "$updt && flutter upgrade"
|
|
|
|
# OCaml
|
|
case opam
|
|
set updt "$updt && opam update && opam upgrade -y"
|
|
|
|
# Common Lisp
|
|
case quicklisp
|
|
set updt "$updt && sbcl --eval '(ql:update-all-dists)' --quit"
|
|
|
|
# Nim
|
|
case nimble
|
|
set updt "$updt && nimble refresh && nimble update"
|
|
|
|
# Crystal
|
|
case shards
|
|
set updt "$updt && shards update"
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
# Final alias
|
|
alias updt="$updt"
|
|
alias systemctl="sudo systemctl"
|
|
|