Merge pull request #122 from skk/archlinux

This commit is contained in:
Bruno Pinto 2014-03-02 07:53:27 -03:00
commit 8fa61126c6
20 changed files with 162 additions and 0 deletions

View File

@ -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 with pacman easier and faster. Please refer to pacman/README.md for more information.
To use this plugin append the following `archlinux/pacman` to `fish_plugins`.

View File

@ -0,0 +1,6 @@
set -l current_dir (dirname $argv)
# add pacman related functions
set fish_function_path $current_dir/pacman $fish_function_path

View File

@ -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

View File

@ -0,0 +1,22 @@
function pacdisowned -d "Display list of disowned files"
if test -d "$TMPDIR"
set tmp $TMPDIR
else
set tmp "/tmp"
end
set dir (mktemp -d -p $tmp)
set -l fs "$dir/fs"
set -l db "$dir/db"
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"
# clean-up after ourself
rm -rf "$dir"
end

View File

@ -0,0 +1,3 @@
function pacin -d "Install specific package(s) from the repositories"
sudo pacman -S $argv
end

View File

@ -0,0 +1,3 @@
function pacins -d "Install specific package not from the repositories but from a file"
sudo pacman -U $argv
end

View File

@ -0,0 +1,3 @@
function paclist
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

View File

@ -0,0 +1,3 @@
function pacloc -d "Display information about a given package in the local database"
pacman -Qi $argv
end

View File

@ -0,0 +1,3 @@
function paclocs -d "Search for package(s) in the local database"
pacman -Qs $argv
end

View File

@ -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

View File

@ -0,0 +1,3 @@
function pacmanallkeys -d "Get all keys for developers and trusted users"
curl https://www.archlinux.org/developers/ https://www.archlinux.org/trustedusers/ | awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' | xargs sudo pacman-key --recv-keys
end

View File

@ -0,0 +1,8 @@
function pacmansignkeys -d "Allow user to sign keys"
for key in $argv;
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
end
end

View File

@ -0,0 +1,3 @@
function pacmir -d "Force refresh of all package lists after updating /etc/pacman.d/mirrorlist"
sudo pacman -Syy $argv
end

View File

@ -0,0 +1,3 @@
function pacre -d "Remove the specified package(s), retaining its configuration(s) and required dependencies"
sudo pacman -R $argv
end

View File

@ -0,0 +1,3 @@
function pacrem -d "Remove the specified package(s), its configuration(s) and unneeded dependencies"
sudo pacman -Rns $argv
end

View File

@ -0,0 +1,3 @@
function pacrep -d "Display information about a given package in the repositories"
pacman -Si $argv
end

View File

@ -0,0 +1,3 @@
function pacreps -d "Search for package(s) in the repositories"
pacman -Ss $argv
end

View File

@ -0,0 +1,3 @@
function pacrmorphans -d "Remove all real orphan packages"
sudo pacman -Rs (pacman -Qtdq) $argv
end

View File

@ -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

View File

@ -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