Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
9c36cef1e1 | |||
73f7e37670 | |||
af686fe6c0 | |||
ba07f6275d | |||
8e2bdd88d3 | |||
8b23dc96a3 | |||
7b3de6cef0 | |||
2c209fd7a0 | |||
b1306a73b4 | |||
e2789d200b | |||
eddbe307c2 | |||
3e22f4ebbd |
23
README.md
23
README.md
@ -1,15 +1,28 @@
|
||||
# pman.sh
|
||||
A `pacman` helper script, because you forget the stupid flags
|
||||
A `pacman` helper script, because you forget all the stupid flags
|
||||
|
||||
## Usage / Features:
|
||||
- aur/yay
|
||||
- search
|
||||
- info
|
||||
- localinfo
|
||||
- provides
|
||||
- providefiles
|
||||
- installed
|
||||
- install
|
||||
- update
|
||||
- upgradable
|
||||
- upgrade
|
||||
- install
|
||||
- provides
|
||||
- remove
|
||||
- purge
|
||||
- clean
|
||||
- reflector
|
||||
- config
|
||||
|
||||
`config` is the only flag that is not appended to `pacman`, instead it resolves to `nano /etc/pacman.conf`.
|
||||
`reflector` and `config` are the only flag that are not appended to `pacman` (or `yay`)<br>
|
||||
instead `reflector` resolves to `reflector` with the previously used parameters stored in `/etc/pacman.d/mirrorlist`<br>
|
||||
and `config` resolves to `nano /etc/pacman.conf`.
|
||||
|
||||
`sudo` gets prepended automatically if the command requires it and if installed - no, there is no check if your user is in the `sudo` group, if you download this script you should already be, or know you can only use part of this utility
|
||||
`sudo` gets prepended automatically if the command requires root privileges, if the UID is not 0 (you are not `root`) and if `sudo` installed.<br>
|
||||
no, there is no check if your user is in the `sudo` group, if you download this script you should already be, or know you can only use part of this utility<br>
|
||||
tho such a feature is planned, to make the script truly ubiquitus.
|
||||
|
196
pman.sh
196
pman.sh
@ -7,6 +7,24 @@ command=""
|
||||
more_arguments=false
|
||||
su_needed=false
|
||||
|
||||
# If sudo is needed and necessary (and installed), prepend it, if not installed throw error
|
||||
check_sudo() {
|
||||
if [ "$su_needed" = "true" ] && [ "$UID" != 0 ]; then
|
||||
if command -v "sudo" &>/dev/null; then
|
||||
command="sudo $command"
|
||||
else
|
||||
echo "sudo command needed but not found" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Execute the command
|
||||
execute_command() {
|
||||
check_sudo
|
||||
$command $command_args "${@}"
|
||||
}
|
||||
|
||||
# Check if yay (aur)
|
||||
if [ "$command_args" = "yay" ] || [ "$command_args" = "aur" ]; then
|
||||
command="yay"
|
||||
@ -18,6 +36,15 @@ elif [ "$command_args" = "config" ]; then
|
||||
command="nano"
|
||||
command_args="/etc/pacman.conf"
|
||||
su_needed=true
|
||||
elif [ "$command_args" = "reflector" ]; then
|
||||
command="reflector"
|
||||
command_args=$(cat /etc/pacman.d/mirrorlist 2>/dev/null | grep -e "With.*reflector" | sed 's/#.*reflector //')
|
||||
# Check if reflector was actually used to generate the mirrorlist
|
||||
if [ "$command_args" = "" ]; then
|
||||
echo "Error: reflector was not used to generate mirrorlist or mirrorlist location differ from standard"
|
||||
exit 1
|
||||
fi
|
||||
su_needed=true
|
||||
fi
|
||||
|
||||
# If command is empty, command is pacman
|
||||
@ -27,68 +54,111 @@ if [ "$command" = "" ]; then
|
||||
fi
|
||||
|
||||
# Evaluate the command arguments
|
||||
if [ "$command_args" = "search" ]; then
|
||||
command_args="-Ss"
|
||||
elif [ "$command_args" = "provides" ]; then
|
||||
command_args="-F"
|
||||
elif [ "$command_args" = "installed" ]; then
|
||||
command_args="-Q"
|
||||
elif [ "$command_args" = "install" ]; then
|
||||
command_args="-S"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
case "$command_args" in
|
||||
"search")
|
||||
command_args="-Ss"
|
||||
;;
|
||||
"info")
|
||||
command_args="-Si"
|
||||
;;
|
||||
"localinfo")
|
||||
command_args="-Qi"
|
||||
;;
|
||||
"provides")
|
||||
# Update the cache
|
||||
su_needed=true
|
||||
fi
|
||||
elif [ "$command_args" = "update" ]; then
|
||||
command_args="-Sy"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
su_needed=true
|
||||
fi
|
||||
elif [ "$command_args" = "upgradable" ]; then
|
||||
command_args="-Qu"
|
||||
elif [ "$command_args" = "upgrade" ]; then
|
||||
command_args="-Syu"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
su_needed=true
|
||||
fi
|
||||
elif [ "$command_args" = "remove" ]; then
|
||||
command_args="-Rs"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
su_needed=true
|
||||
fi
|
||||
elif [ "$command_args" = "purge" ]; then
|
||||
command_args="-Rns"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
su_needed=true
|
||||
fi
|
||||
elif [ "$more_arguments" = "true" ]; then
|
||||
echo "Invalid command: \"$command $command_args\""
|
||||
echo
|
||||
echo "Usage: pman <command> [args...]"
|
||||
echo "Available commands:"
|
||||
echo " yay (aur) - yay | invoke yay "
|
||||
echo " (aur packages - all the normal operations except config are available)"
|
||||
echo " aur (yay) - yay | same as \"yay\""
|
||||
echo " search - pacman -Ss | search packages"
|
||||
echo " provides - pacman -F | list packages that provide file"
|
||||
echo " installed - pacman -Q | list installed packages"
|
||||
echo " install - pacman -S | install packages"
|
||||
echo " update - pacman -Sy | updates the repositories"
|
||||
echo " upgradable - pacman -Qu | list available upgrades"
|
||||
echo " upgrade - pacman -Syu | upgrades your system"
|
||||
echo " remove - pacman -Rs | remove packages & dependencies"
|
||||
echo " purge - pacman -Rns | remove packages, dependencies & conf"
|
||||
echo " config - /etc/pacman.conf | edits pacman configuration"
|
||||
exit 1
|
||||
fi
|
||||
command_args="-Fy"
|
||||
execute_command "${@}"
|
||||
|
||||
# If sudo is needed and necessary (and installed), prepend it, if not installed throw error
|
||||
if [ "$su_needed" = "true" ] && [ "$UID" != 0 ]; then
|
||||
if command -v "sudo" &>/dev/null; then
|
||||
sudo $command $command_args "${@}"
|
||||
else
|
||||
echo "sudo command needed but not found" > /dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
$command $command_args "${@}"
|
||||
fi
|
||||
su_needed=false
|
||||
command_args="-F"
|
||||
;;
|
||||
"providefiles")
|
||||
# Update the cache
|
||||
su_needed=true
|
||||
command_args="-Fy"
|
||||
execute_command "${@}"
|
||||
|
||||
su_needed=false
|
||||
command_args="-Fl"
|
||||
;;
|
||||
"installed")
|
||||
command_args="-Q"
|
||||
;;
|
||||
"install")
|
||||
command_args="-S"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
su_needed=true
|
||||
fi
|
||||
;;
|
||||
"update")
|
||||
command_args="-Sy"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
su_needed=true
|
||||
fi
|
||||
execute_command "${@}"
|
||||
|
||||
su_needed=false
|
||||
command_args="-Qu"
|
||||
echo
|
||||
echo "$(execute_command "${@}" | wc -l) packages are available for update"
|
||||
exit 0
|
||||
;;
|
||||
"upgradable")
|
||||
command_args="-Qu"
|
||||
;;
|
||||
"upgrade")
|
||||
command_args="-Syu"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
su_needed=true
|
||||
fi
|
||||
;;
|
||||
"remove")
|
||||
command_args="-Rs"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
su_needed=true
|
||||
fi
|
||||
;;
|
||||
"purge")
|
||||
command_args="-Rns"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
su_needed=true
|
||||
fi
|
||||
;;
|
||||
"clean")
|
||||
command_args="-Scc"
|
||||
if [ "$command" = "pacman" ]; then
|
||||
su_needed=true
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [ "$more_arguments" = "true" ]; then
|
||||
echo "Invalid command: \"$command_args\""
|
||||
echo
|
||||
echo "Usage: pman <command> [args...]"
|
||||
echo "Available commands:"
|
||||
echo " yay (aur) - yay | invoke yay "
|
||||
echo " (aur packages - all the normal operations except config are available)"
|
||||
echo " aur (yay) - yay | same as \"yay\""
|
||||
echo " search - pacman -Ss | search packages"
|
||||
echo " info - pacman -Si | show package information"
|
||||
echo " localinfo - pacman -Qi | show local package information"
|
||||
echo " provides - pacman -F | list packages that provide file"
|
||||
echo " providefiles - pacman -Fl | list files provided by package"
|
||||
echo " installed - pacman -Q | list installed packages"
|
||||
echo " install - pacman -S | install packages"
|
||||
echo " update - pacman -Sy | updates the repositories"
|
||||
echo " upgradable - pacman -Qu | list available upgrades"
|
||||
echo " upgrade - pacman -Syu | upgrades your system"
|
||||
echo " remove - pacman -Rs | remove packages & dependencies"
|
||||
echo " purge - pacman -Rns | remove packages, dependencies & conf"
|
||||
echo " clean - pacman -Scc | remove all package files & trash"
|
||||
echo " reflector - mirrorlist | refresh the mirrorlist with reflector (if used)"
|
||||
echo " (do not use if file location differ from default /etc/pacman.d/mirrorlist)"
|
||||
echo " config - /etc/pacman.conf | edits pacman configuration"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
execute_command "${@}"
|
||||
|
Loading…
Reference in New Issue
Block a user