5 # __ _____\ \ ,_\ _____ __ ___
6 # /'__`\ /\ '__`\ \ \//\ '__`\ /'__`\ /'___\
7 #/\ \L\.\\ \ \L\ \ \ \\ \ \L\ /\ \L\.\_/\ \__/
8 #\ \__/.\_\ \ ,__/\ \__\ \ ,__\ \__/.\_\ \____\
9 # \/__/\/_/\ \ \/ \/__/\ \ \/ \/__/\/_/\/____/
12 # a pacman wrapper with syntax based on debian's apt
13 # (c) 2019-2020 Fascode Network.
14 # License: Do What The Fuck You Want To Public License
15 # maintained by Yamada Hayao
17 # Enter the path to the AUR helper you want to use here.
18 # If it is empty, the corresponding AUR helper will be searched automatically.
24 APTPAC_VERSION="3.1.0"
34 DEFAULT_PACMAN_COMMAND="/usr/bin/pacman"
35 PACMAN_COMMAND="${DEFAULT_PACMAN_COMMAND}"
36 PACMAN_CONFIG="/etc/pacman.conf"
52 if [[ ! "${UID}" = 0 ]]; then
53 if [[ -z "${AURHELPER}" ]]; then
54 for AURHELPER in ${HELPERS[@]}; do
55 if [[ -f "${AURHELPER}" ]]; then
56 PACMAN_COMMAND="${AURHELPER}"
58 elif hash "$(basename "${AURHELPER}")" 2> /dev/null; then
59 PACMAN_COMMAND="$(basename "${AURHELPER}")"
63 if [[ "${PACMAN_COMMAND}" == "${DEFAULT_PACMAN_COMMAND}" ]]; then
64 PACMAN_COMMAND="sudo ${DEFAULT_PACMAN_COMMAND}"
67 if [[ -f "${AURHELPER}" ]]; then
68 PACMAN_COMMAND="${AURHELPER}"
69 elif hash "$(basename "${AURHELPER}")" 2> /dev/null; then
70 PACMAN_COMMAND="$(basename "${AURHELPER}")"
72 _msg_error "${AURHELPER} is not installed"
83 echo "usage ${0} [options] [command] [packages]"
86 echo " install Install the specified package"
87 echo " remove Remove the specified package"
88 echo " purge Permanently remove the package"
89 echo " update Update package database"
90 echo " upgrade | full-upgrade Update packages"
91 echo " edit-sources Edit config file of pacman"
92 echo " search Search for a package"
93 echo " autoremove Remove unnecessary packages"
94 echo " clean Remove the package cache"
95 echo " list Displays a list of packages"
98 echo " -y | --yes | --assume-yes Do not check"
99 echo " -d | --download-only Only download the package"
100 echo " -c | --config-file <file> Config file for pacman"
101 echo " -h | --help Display this help"
102 echo " -v | --version Displays the version of aptpac and pacman"
103 echo " --auto-remove | --autoremove Remove unnecessary packages with other command"
104 echo " --purge Delete the entire configuration file"
106 echo " pacapt options:"
107 echo " --aur-helper <command> Specifies the command to use as the AUR helper"
108 echo " Ignored if pacapt is run as root"
109 echo " Specify AUR helper that supports common command line options with pacman"
111 echo " aptpac supports not only above options but also options of pacman"
120 aptpac ${APTPAC_VERSION} - A pacman wrapper with syntax based on debian's apt
121 License: Do What The Fuck You Want To Public License
122 (c) 2019-2020 Fascode Network. Yamada Hayao
130 PACMAN_OPTIONS="${PACMAN_OPTIONS} ${@}"
133 # Argument analysis and processing
135 PACAPT_ARGUMENTS="${@}"
136 _opt_short="ydfc:hvVDFQRSTU"
137 _opt_long="yes,assume-yes,download-only,fix-broken,purse,installed,debug,help,version,config-file:,auto-remove,autoremove"
138 OPT=$(getopt -o ${_opt_short} -l ${_opt_long} -- "${@}" 2> /dev/null)
140 #if [[ ${?} != 0 ]]; then
145 #echo "Argument is \"${OPT}\""
146 unset OPT _opt_short _opt_long
150 -y | --yes | --assume-yes)
151 ADD_OPTION "--noconfirm"
154 -d | --download-only)
187 --autoremove | --auto-remove)
192 if [[ ! "${UID}" = 0 ]] && [[ -f "${2}" ]]; then
193 PACMAN_COMMAND="${2}"
194 elif [[ "${UID}" = 0 ]]; then
195 _msg_warn "The specified AUR helper is not used because pacapt is running on the root."
196 elif hash "$(basename "${2}")" 2> /dev/null; then
197 PACMAN_COMMAND="$(basename "${2}")"
199 _msg_error "${2} is not installed"
204 -V | -D | -F | -Q | -R | -S | -T | -U)
206 ADD_OPTION "${PACAPT_ARGUMENTS}"
214 _msg_error "Invalid argument '${1}'"
221 if [[ "${direct_option}" = false ]]; then
222 if [[ $# -lt 1 ]]; then
223 _msg_error "No command specified"
256 if [[ -n "${EDITOR}" ]]; then
257 sudo ${EDITOR} "${PACMAN_CONFIG}"
259 sudo nano "${PACMAN_CONFIG}"
267 source "/etc/locale.conf"
268 if [[ "${LANG}" = "ja_JP.UTF-8" ]]; then
269 echo "(ง •ᴗ•)ว ⁾⁾ファーウェイでウェイウェイ"
272 _msg_error "Invalid command '${COMMAND}'"
283 echo "...."Have you mooed today?"..."
290 if [[ -n $(${PACMAN_COMMAND} -Qttdq) ]]; then
292 PACKAGE="$(${PACMAN_COMMAND} -Qttdq)"
294 echo "No packages to remove"
299 if ${installed}; then
300 ADD_OPTION "-Q | grep"
306 _msg_error "Invalid command '${COMMAND}'"
312 if [[ ! "${PACMAN_COMMAND}" = "pacman" ]] && [[ ! "${PACMAN_COMMAND}" = "sudo pacman" ]]; then
313 _msg_debug "Use AUR helper ${PACMAN_COMMAND}"
316 # echo "${PACMAN_COMMAND} ${PACMAN_OPTIONS} ${PACKAGE}"
317 ${PACMAN_COMMAND} ${PACMAN_OPTIONS} --config "${PACMAN_CONFIG}" ${PACKAGE}
319 if ${autoremove}; then
320 if [[ -n $(${PACMAN_COMMAND} -Qttdq) ]]; then
321 ${PACMAN_COMMAND} -Rsc --config "${PACMAN_CONFIG}" $(${PACMAN_COMMAND} -Qttdq)
323 echo "No packages to remove"