-
-
Save Gen2ly/9723893 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# (Ar)ch (pa)ckages - generic package tasks wrapper script | |
# Required programs | |
req_prgs=(pacaur sudo) | |
for prog in ${req_prgs[@]}; do | |
if ! hash "$prog" 2>&- ; then | |
echo >&2 ""${0##*/}": requires program: "$prog"" | |
error=y ;fi ; done | |
[ "$error" = y ] && exit 1 | |
# Parameter existence check | |
param_tst () { | |
if [ -n "$@" ]; then | |
return 0 | |
else | |
echo "no input specified"; exit 1; fi; } | |
help_prnt () { | |
echo ""${0##*/}" [option] [*package] - generic package tasks wrapper script | |
-e, --explicit - install a package as explicit | |
-g, --get - only download package files : -G for upgrade files | |
-i, --install - install a package : -I for deps, *.pkg.tar.* | |
-l, --list - list files installed by a package : -L genlist inst. pkgs | |
-n, --info - information about a package | |
-o, --owns - owning package of a file | |
-q, --query - query for an installed package : -Q adds description | |
-r, --remove - remove a pkg and its deps : -R force, no param orphs | |
-s, --search - search for a package : -S adds description | |
-u, --upgrade - sync package db and upgrade system : -U for the AUR | |
-y, --sync - sync package db"; } | |
case $1 in | |
-e | --explicit ) | |
shift; param_tst && sudo pacman -S --asexplicit "$@" ;; | |
-g | --get ) | |
shift; param_tst && sudo pacman -Sw "$@" ;; | |
-G | --getup ) | |
sudo pacman -Syuw ;; | |
-i | --install ) | |
shift; param_tst | |
pre="[a-z,A-Z,0-9,@,/,\.\_\+\-]*pkg.tar[.]\?\(gz\|xz\|bz2\|lrz\|lzo\|Z\)\?" | |
pkgoff="$(echo "$@" | \ | |
sed "s/$pre//g")" | |
pkgloc="$(echo "$@" | \ | |
grep -o "$pre")" | |
[ -n "$pkgoff" ] && pacaur -S $pkgoff | |
[ -n "$pkgloc" ] && sudo pacman -U $pkgloc ;; | |
-I | --depinst ) | |
shift; param_tst | |
pre="[a-z,A-Z,0-9,@,/,\.\_\+\-]*pkg.tar[.]\?\(gz\|xz\|bz2\|lrz\|lzo\|Z\)\?" | |
pkgoff="$(echo "$@" | \ | |
sed "s/$pre//g")" | |
pkgloc="$(echo "$@" | \ | |
grep -o "$pre")" | |
[ -n "$pkgoff" ] && sudo pacman -S --asdeps $pkgoff | |
[ -n "$pkgloc" ] && sudo pacman -U --asdeps $pkgloc ;; | |
-l | --list ) | |
shift; param_tst && pacman -Qql "$@" ;; | |
-L | --pkglist ) | |
date="$(date "+%F")" | |
pacman -Qqe | grep -v "$(pacman -Qqm)" > pkglist-off_$date.txt | |
pacman -Qqm > pkglist-loc_$date.txt | |
[ $? = 0 ] && \ | |
echo "Generated package lists: pkglist-off_date.txt pkglist-loc_date.txt" ;; | |
-n | --info ) | |
shift; param_tst | |
for package in "$@"; do | |
pacaur -Si "$package" 2>&-; done ;; | |
-o | --own ) | |
shift; param_tst && pacman -Qo "$@" ;; | |
-q | --query ) | |
shift; param_tst && pacman -Qqs "$@" ;; | |
-Q | --Query ) | |
shift; param_tst && pacman -Qs "$@" ;; | |
-r | --remove ) | |
shift | |
if [ -z "$@" ]; then | |
sudo pacman -Rcs $(pacman -Qtdq) | |
else | |
sudo pacman -Rs "$@"; fi ;; | |
-R | --forcerm ) | |
shift; param_tst && sudo pacman -Rdd "$@" ;; | |
-s | --search ) | |
shift; param_tst | |
pacaur -Ss "$@" | sed '/^ .*$/d' | cut -d " " -f 1 ;; | |
-S | --Search ) | |
shift; param_tst | |
pacaur -Ss "$@" ;; | |
-u | --upgrade ) | |
sudo pacman -Syu ;; | |
-U | --upaur ) | |
pacaur -Syu --aur --devel ;; | |
-y | --sync ) | |
sudo pacman -Syy ;; | |
* ) help_prnt ;; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment