#!/usr/bin/env bash # Store the first command line argument in the variable "command" and shift the rest command_args="$1" shift command="" more_arguments=false su_needed=false # Check if yay (aur) if [ "$command_args" = "yay" ] || [ "$command_args" = "aur" ]; then command="yay" command_args="$1" shift more_arguments=true # Check if config elif [ "$command_args" = "config" ]; then command="nano" command_args="/etc/pacman.conf" su_needed=true fi # If command is empty, command is pacman if [ "$command" = "" ]; then command="pacman" more_arguments=true fi # Evaluate the command arguments if [ "$command_args" = "search" ]; then command_args="-Ss" elif [ "$command_args" = "provides" ]; then command_args="-F" elif [ "$command_args" = "install" ]; then command_args="-S" if [ "$command" = "pacman" ]; then 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 [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 " 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 # 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