diff --git a/plugins/archlinux/README.md b/plugins/archlinux/README.md new file mode 100644 index 0000000..a5645f4 --- /dev/null +++ b/plugins/archlinux/README.md @@ -0,0 +1,22 @@ + +# The Arch Linux Plugins + +The Arch Linux Plugins provides a number of plugins to make using arch easier. + +# The Plugins + +## archlinux + +This plugin includes all of provided Arch Linux Plugins wrapped in a single plugin. + +To use this plugin append the following `archlinux` to `fish_plugins`. + +## archlinux/pacman + +This plugin makes working work pacman easier and faster. Please refer to pacman/README.md for more information. + +To use this plugin append the following `archlinux` to `fish_plugins`. + + + + diff --git a/plugins/archlinux/archlinux.load b/plugins/archlinux/archlinux.load new file mode 100644 index 0000000..54d711a --- /dev/null +++ b/plugins/archlinux/archlinux.load @@ -0,0 +1,6 @@ + + +set -l current_dir (dirname $argv) + +# add pacman related functions +set fish_function_path $current_dir/pacman $fish_function_path diff --git a/plugins/archlinux/pacman/README.md b/plugins/archlinux/pacman/README.md new file mode 100644 index 0000000..054d699 --- /dev/null +++ b/plugins/archlinux/pacman/README.md @@ -0,0 +1,52 @@ + +# pacman functions # + +* pacin +Install specific package(s) from the repositories + +* pacins +Install specific package not from the repositories but from a file + +* pacre +Remove the specified package(s), retaining its configuration(s) and required dependencies + +* pacrem +Remove the specified package(s), its configuration(s) and unneeded dependencies + +* pacrep +Display information about a given package in the repositories + +* pacreps +Search for package(s) in the repositories + +* pacloc +Display information about a given package in the local database + +* paclocs +Search for package(s) in the local database + +* pacupd +Update and refresh the local package and ABS databases against repositories + +* pacinsd +Install given package(s) as dependencies of another package + +* pacmir +Force refresh of all package lists after updating /etc/pacman.d/mirrorlist + +* paclist +List all installed packages with a short description - Source + +* paclsorphans +List all orphaned packages + +* pacrmorphans +Delete all orphaned packages + +* pacdisowned | less +F +List all disowned files in your system + + +# Based on aliases from oh-my-zsh + +Source: https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/archlinux/archlinux.plugin.zsh diff --git a/plugins/archlinux/pacman/pacdisowned.fish b/plugins/archlinux/pacman/pacdisowned.fish new file mode 100644 index 0000000..d4c100c --- /dev/null +++ b/plugins/archlinux/pacman/pacdisowned.fish @@ -0,0 +1,18 @@ +# TODO: Need to convert to fish +function pacdisowned + # tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$ + # db=$tmp/db + # fs=$tmp/fs + + # mkdir "$tmp" + # trap 'rm -rf "$tmp"' EXIT + + # pacman -Qlq | sort -u > "$db" + + # find /bin /etc /lib /sbin /usr \ + # ! -name lost+found \ + # \( -type d -printf '%p/\n' -o -print \) | sort > "$fs" + + # comm -23 "$fs" "$db" +end + diff --git a/plugins/archlinux/pacman/pacin.fish b/plugins/archlinux/pacman/pacin.fish new file mode 100644 index 0000000..07b2783 --- /dev/null +++ b/plugins/archlinux/pacman/pacin.fish @@ -0,0 +1,3 @@ +function pacin -d "Install specific package(s) from the repositories" + sudo pacman -S $argv +end diff --git a/plugins/archlinux/pacman/pacins.fish b/plugins/archlinux/pacman/pacins.fish new file mode 100644 index 0000000..4456eaf --- /dev/null +++ b/plugins/archlinux/pacman/pacins.fish @@ -0,0 +1,3 @@ +function pacins -d "Install specific package not from the repositories but from a file" + sudo pacman -U $argv +end diff --git a/plugins/archlinux/pacman/paclist.fish b/plugins/archlinux/pacman/paclist.fish new file mode 100644 index 0000000..6d83286 --- /dev/null +++ b/plugins/archlinux/pacman/paclist.fish @@ -0,0 +1,3 @@ +function paclist + sudo pacman -Qei (pacman -Qu|cut -d" " -f 1)|awk ' BEGIN {FS=":"}/^Name/{printf("\033[1;36m%s\033[1;37m", $2)}/^Description/{print $2}' +end diff --git a/plugins/archlinux/pacman/pacloc.fish b/plugins/archlinux/pacman/pacloc.fish new file mode 100644 index 0000000..61f3e01 --- /dev/null +++ b/plugins/archlinux/pacman/pacloc.fish @@ -0,0 +1,3 @@ +function pacloc -d "Display information about a given package in the local database" + pacman -Qi $argv +end diff --git a/plugins/archlinux/pacman/paclocs.fish b/plugins/archlinux/pacman/paclocs.fish new file mode 100644 index 0000000..10aacbd --- /dev/null +++ b/plugins/archlinux/pacman/paclocs.fish @@ -0,0 +1,3 @@ +function paclocs -d "Search for package(s) in the local database" + sudo pacman -Qs $argv +end diff --git a/plugins/archlinux/pacman/paclsorphans.fish b/plugins/archlinux/pacman/paclsorphans.fish new file mode 100644 index 0000000..7d1b334 --- /dev/null +++ b/plugins/archlinux/pacman/paclsorphans.fish @@ -0,0 +1,3 @@ +function paclsorphans -d "Display a list of packages that were installed as dependencies but are no longer required by any installed package" + pacman -Qdt $argv +end diff --git a/plugins/archlinux/pacman/pacmanallkeys.fish b/plugins/archlinux/pacman/pacmanallkeys.fish new file mode 100644 index 0000000..6b2884b --- /dev/null +++ b/plugins/archlinux/pacman/pacmanallkeys.fish @@ -0,0 +1,7 @@ +# TODO: Need to convert to fish +function pacmanallkeys +# Get all keys for developers and trusted users +#curl https://www.archlinux.org/{developers,trustedusers}/ | +#awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' | +#xargs sudo pacman-key --recv-keys +end diff --git a/plugins/archlinux/pacman/pacmansignkeys.fish b/plugins/archlinux/pacman/pacmansignkeys.fish new file mode 100644 index 0000000..4349d5a --- /dev/null +++ b/plugins/archlinux/pacman/pacmansignkeys.fish @@ -0,0 +1,9 @@ +# TODO: Need to convert to fish +function pacmansignkeys + # for key in $*; do + # sudo pacman-key --recv-keys $key + # sudo pacman-key --lsign-key $key + # printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \ + # --no-permission-warning --command-fd 0 --edit-key $key + # done +end diff --git a/plugins/archlinux/pacman/pacmir.fish b/plugins/archlinux/pacman/pacmir.fish new file mode 100644 index 0000000..58f1982 --- /dev/null +++ b/plugins/archlinux/pacman/pacmir.fish @@ -0,0 +1,3 @@ +function pacmir -d "Force refresh of all package lists after updating /etc/pacman.d/mirrorlist" + sudo pacman -Syy $argv +end diff --git a/plugins/archlinux/pacman/pacre.fish b/plugins/archlinux/pacman/pacre.fish new file mode 100644 index 0000000..94b7b34 --- /dev/null +++ b/plugins/archlinux/pacman/pacre.fish @@ -0,0 +1,3 @@ +function pacre -d "Remove the specified package(s), retaining its configuration(s) and required dependencies" + sudo pacman -R $argv +end diff --git a/plugins/archlinux/pacman/pacrem.fish b/plugins/archlinux/pacman/pacrem.fish new file mode 100644 index 0000000..79fdc27 --- /dev/null +++ b/plugins/archlinux/pacman/pacrem.fish @@ -0,0 +1,3 @@ +function pacrem -d "Remove the specified package(s), its configuration(s) and unneeded dependencies" + sudo pacman -Rns $argv +end diff --git a/plugins/archlinux/pacman/pacrep.fish b/plugins/archlinux/pacman/pacrep.fish new file mode 100644 index 0000000..74dfbec --- /dev/null +++ b/plugins/archlinux/pacman/pacrep.fish @@ -0,0 +1,3 @@ +function pacrep -d "Display information about a given package in the repositories" + pacman -Si $argv +end diff --git a/plugins/archlinux/pacman/pacreps.fish b/plugins/archlinux/pacman/pacreps.fish new file mode 100644 index 0000000..c6ebc78 --- /dev/null +++ b/plugins/archlinux/pacman/pacreps.fish @@ -0,0 +1,3 @@ +function pacreps -d "Search for package(s) in the repositories" + command pacman -Ss $argv +end diff --git a/plugins/archlinux/pacman/pacrmorphans.fish b/plugins/archlinux/pacman/pacrmorphans.fish new file mode 100644 index 0000000..740ac98 --- /dev/null +++ b/plugins/archlinux/pacman/pacrmorphans.fish @@ -0,0 +1,3 @@ +function pacrmorphans -d "Remove all real orphan packages" + sudo pacman -Rs (pacman -Qtdq) $argv +end diff --git a/plugins/archlinux/pacman/pacupd.fish b/plugins/archlinux/pacman/pacupd.fish new file mode 100644 index 0000000..fdd9c64 --- /dev/null +++ b/plugins/archlinux/pacman/pacupd.fish @@ -0,0 +1,10 @@ +which abs ^ /dev/null > /dev/null +if test $status -ne 1 + function pacupd -d "Update and refresh the local package and ABS databases against repositories" + sudo pacman -Sy; and sudo abs + end +else + function pacupd -d "Update and refresh the local package against repositories" + sudo pacman -Sy + end +end diff --git a/plugins/archlinux/pacman/pacupg.fish b/plugins/archlinux/pacman/pacupg.fish new file mode 100644 index 0000000..0f0ee5b --- /dev/null +++ b/plugins/archlinux/pacman/pacupg.fish @@ -0,0 +1,3 @@ +function pacupg -d "Synchronize with repositories before upgrading packages that are out of date on the local system." + sudo pacman -Syu $argv +end