diff --git a/conf.d/fish_alias_distro.fish b/conf.d/fish_alias_distro.fish deleted file mode 100644 index d13e7db..0000000 --- a/conf.d/fish_alias_distro.fish +++ /dev/null @@ -1,43 +0,0 @@ -# Manually set OS -set -gx OS "fedora" - -# Auto-detect if OS is not already 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" - end -end - -# Aliases based on OS -switch $OS - case debian - alias inst="sudo apt-get install -y" - alias updt="sudo apt-get update && sudo apt-get upgrade -y && rustup update" - case ubuntu - alias inst="sudo apt-get install -y" - alias updt="sudo apt-get update && sudo apt-get upgrade -y && sudo snap refresh && rustup update" - case arch manjaro - alias inst="sudo pacman -S" - alias updt="sudo pacman -Syuu --noconfirm && paru -Syu --noconfirm && rustup update" - case fedora - alias inst="sudo dnf install -y" - alias updt="sudo dnf upgrade -y && rustup update" - case rhel centos rocky almalinux - alias inst="sudo dnf install -y" - alias updt="sudo dnf upgrade -y && rustup update" - case opensuse tumbleweed - alias inst="sudo zypper install -y" - alias updt="sudo zypper refresh && sudo zypper update -y && rustup update" - case void - alias inst="sudo xbps-install -Sy" - alias updt="sudo xbps-install -Su && rustup update" - case alpine - alias inst="sudo apk add" - alias updt="sudo apk update && sudo apk upgrade && rustup update" - case freebsd - alias inst="sudo pkg install -y" - alias updt="sudo pkg update && sudo pkg upgrade -y && rustup update" -end diff --git a/conf.d/fish_alias_pkgmgr.fish b/conf.d/fish_alias_pkgmgr.fish new file mode 100644 index 0000000..fcefa63 --- /dev/null +++ b/conf.d/fish_alias_pkgmgr.fish @@ -0,0 +1,257 @@ +# 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" +