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"
36 PACMAN_COMMAND="${DEFAULT_PACMAN_COMMAND}"
37 PACMAN_CONFIG="/etc/pacman.conf"
50 if [[ ! "${UID}" = 0 ]]; then
51 if [[ -z "${AURHELPER}" ]]; then
52 for AURHELPER in ${HELPERS[@]}; do
53 if [[ -f "${AURHELPER}" ]]; then
54 PACMAN_COMMAND="${AURHELPER}"
56 elif hash "$(basename "${AURHELPER}")" 2> /dev/null; then
57 PACMAN_COMMAND="$(basename "${AURHELPER}")"
61 if [[ "${PACMAN_COMMAND}" == "${DEFAULT_PACMAN_COMMAND}" ]]; then
62 PACMAN_COMMAND="sudo ${DEFAULT_PACMAN_COMMAND}"
65 if [[ -f "${AURHELPER}" ]]; then
66 PACMAN_COMMAND="${AURHELPER}"
67 elif hash "$(basename "${AURHELPER}")" 2> /dev/null; then
68 PACMAN_COMMAND="$(basename "${AURHELPER}")"
70 _msg_error "${AURHELPER} is not installed"
81 echo "usage ${0} [options] [command] [packages]"
83 echo " install Install the specified package"
84 echo " remove Remove the specified package"
85 echo " purge Permanently remove the package"
86 echo " update Update package database"
87 echo " upgrade | full-upgrade Update packages"
88 echo " edit-sources Edit config file of pacman"
89 echo " search Search for a package"
90 echo " autoremove Remove unnecessary packages"
91 echo " clean Remove the package cache"
92 echo " list Displays a list of packages"
95 echo " -y | --yes | --assume-yes Do not check"
96 echo " -d | --download-only Only download the package"
97 echo " -c | --config-file <file> Config file for pacman"
98 echo " -h | --help Display this help"
99 echo " -v | --version Displays the version of aptpac and pacman"
100 echo " --auto-remove | --autoremove Remove unnecessary packages with other command"
101 echo " --purge Delete the entire configuration file"
103 echo " pacapt options:"
104 echo " --aur-helper <command> Specifies the command to use as the AUR helper"
105 echo " Ignored if pacapt is run as root"
106 echo " Specify AUR helper that supports common command line options with pacman"
115 aptpac ${APTPAC_VERSION} - A pacman wrapper with syntax based on debian's apt
116 License: Do What The Fuck You Want To Public License
117 (c) 2019-2020 Fascode Network. Yamada Hayao
125 PACMAN_OPTIONS="${PACMAN_OPTIONS} ${@}"
128 # Argument analysis and processing
130 _opt_long="yes,assume-yes,download-only,fix-broken,purse,installed,debug,help,version,config-file:,auto-remove,autoremove"
131 OPT=$(getopt -o ${_opt_short} -l ${_opt_long} -- "${@}")
132 if [[ ${?} != 0 ]]; then
137 #echo "Argument is \"${OPT}\""
138 unset OPT _opt_short _opt_long
142 -y | --yes | --assume-yes)
143 ADD_OPTION "--noconfirm"
146 -d | --download-only)
179 --autoremove | --auto-remove)
184 if [[ ! "${UID}" = 0 ]] && [[ -f "${2}" ]]; then
185 PACMAN_COMMAND="${2}"
186 elif [[ "${UID}" = 0 ]]; then
187 _msg_warn "The specified AUR helper is not used because pacapt is running on the root."
188 elif hash "$(basename "${2}")" 2> /dev/null; then
189 PACMAN_COMMAND="$(basename "${2}")"
191 _msg_error "${2} is not installed"
200 _msg_error "Invalid argument '${1}'"
207 if [[ $# -lt 1 ]]; then
208 _msg_error "No command specified"
241 if [[ -n "${EDITOR}" ]]; then
242 sudo ${EDITOR} "${PACMAN_CONFIG}"
244 sudo nano "${PACMAN_CONFIG}"
252 source "/etc/locale.conf"
253 if [[ "${LANG}" = "ja_JP.UTF-8" ]]; then
254 echo "(ง •ᴗ•)ว ⁾⁾ファーウェイでウェイウェイ"
257 _msg_error "Invalid command '${COMMAND}'"
268 echo "...."Have you mooed today?"..."
275 if [[ -n $(${PACMAN_COMMAND} -Qttdq) ]]; then
277 PACKAGE="$(${PACMAN_COMMAND} -Qttdq)"
279 echo "No packages to remove"
284 if ${installed}; then
285 ADD_OPTION "-Q | grep"
291 _msg_error "Invalid command '${COMMAND}'"
296 if [[ ! "${PACMAN_COMMAND}" = "pacman" ]] && [[ ! "${PACMAN_COMMAND}" = "sudo pacman" ]]; then
297 _msg_debug "Use AUR helper ${PACMAN_COMMAND}"
300 # echo "${PACMAN_COMMAND} ${PACMAN_OPTIONS} ${PACKAGE}"
301 ${PACMAN_COMMAND} ${PACMAN_OPTIONS} --config "${PACMAN_CONFIG}" ${PACKAGE}
303 if ${autoremove}; then
304 if [[ -n $(${PACMAN_COMMAND} -Qttdq) ]]; then
305 ${PACMAN_COMMAND} -Rsc --config "${PACMAN_CONFIG}" $(${PACMAN_COMMAND} -Qttdq)
307 echo "No packages to remove"