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.0.1"
33 DEFAULT_PACMAN_COMMAND="/usr/bin/pacman"
35 PACMAN_COMMAND="${DEFAULT_PACMAN_COMMAND}"
36 PACMAN_CONFIG="/etc/pacman.conf"
49 if [[ ! "${UID}" = 0 ]]; then
50 if [[ -z "${AURHELPER}" ]]; then
51 for AURHELPER in ${HELPERS[@]}; do
52 if [[ -f "${AURHELPER}" ]]; then
53 PACMAN_COMMAND="${AURHELPER}"
55 elif hash "$(basename "${AURHELPER}")" 2> /dev/null; then
56 PACMAN_COMMAND="$(basename "${AURHELPER}")"
60 if [[ "${PACMAN_COMMAND}" == "${DEFAULT_PACMAN_COMMAND}" ]]; then
61 PACMAN_COMMAND="sudo ${DEFAULT_PACMAN_COMMAND}"
64 if [[ -f "${AURHELPER}" ]]; then
65 PACMAN_COMMAND="${AURHELPER}"
66 elif hash "$(basename "${AURHELPER}")" 2> /dev/null; then
67 PACMAN_COMMAND="$(basename "${AURHELPER}")"
69 _msg_error "${AURHELPER} is not installed"
80 echo "usage ${0} [options] [command] [packages]"
82 echo " install Install the specified package"
83 echo " remove Remove the specified package"
84 echo " purge Permanently remove the package"
85 echo " update Update package database"
86 echo " upgrade | full-upgrade Update packages"
87 echo " edit-sources Edit config file of pacman"
88 echo " search Search for a package"
89 echo " autoremove Remove unnecessary packages"
90 echo " clean Remove the package cache"
91 echo " list Displays a list of packages"
93 echo " general options: "
94 echo " -y | --yes | --assume-yes Do not check"
95 echo " -d | --download-only Only download the package"
96 echo " -c | --config-file <file> Config file for pacman"
97 echo " -h | --help Display this help"
98 echo " -v | --version Displays the version of aptpac and pacman"
99 echo " --auto-remove | --autoremove Remove unnecessary packages with other command"
100 echo " --purge Delete the entire configuration file"
109 aptpac ${APTPAC_VERSION} - A pacman wrapper with syntax based on debian's apt
110 License: Do What The Fuck You Want To Public License
111 (c) 2019-2020 Fascode Network. Yamada Hayao
119 PACMAN_OPTIONS="${PACMAN_OPTIONS} ${@}"
122 # Argument analysis and processing
124 _opt_long="yes,assume-yes,download-only,fix-broken,purse,installed,debug,help,version,config-file:,auto-remove,autoremove"
125 OPT=$(getopt -o ${_opt_short} -l ${_opt_long} -- "${@}")
126 if [[ ${?} != 0 ]]; then
131 #echo "Argument is \"${OPT}\""
132 unset OPT _opt_short _opt_long
136 -y | --yes | --assume-yes)
137 ADD_OPTION "--noconfirm"
140 -d | --download-only)
173 --autoremove | --auto-remove)
182 _msg_error "Invalid argument '${1}'"
189 if [[ $# -lt 1 ]]; then
190 _msg_error "No command specified"
223 if [[ -n "${EDITOR}" ]]; then
224 sudo ${EDITOR} "${PACMAN_CONFIG}"
226 sudo nano "${PACMAN_CONFIG}"
234 source "/etc/locale.conf"
235 if [[ "${LANG}" = "ja_JP.UTF-8" ]]; then
236 echo "(ง •ᴗ•)ว ⁾⁾ファーウェイでウェイウェイ"
239 _msg_error "Invalid command '${COMMAND}'"
250 echo "...."Have you mooed today?"..."
257 if [[ -n $(${PACMAN_COMMAND} -Qttdq) ]]; then
259 PACKAGE="$(${PACMAN_COMMAND} -Qttdq)"
261 echo "No packages to remove"
266 if ${installed}; then
267 ADD_OPTION "-Q | grep"
273 _msg_error "Invalid command '${COMMAND}'"
278 if [[ ! "${PACMAN_COMMAND}" = "pacman" ]] && [[ ! "${PACMAN_COMMAND}" = "sudo pacman" ]]; then
279 _msg_debug "Use AUR helper ${PACMAN_COMMAND}"
282 # echo "${PACMAN_COMMAND} ${PACMAN_OPTIONS} ${PACKAGE}"
283 ${PACMAN_COMMAND} ${PACMAN_OPTIONS} --config "${PACMAN_CONFIG}" ${PACKAGE}
285 if ${autoremove}; then
286 if [[ -n $(${PACMAN_COMMAND} -Qttdq) ]]; then
287 ${PACMAN_COMMAND} -Rsc --config "${PACMAN_CONFIG}" $(${PACMAN_COMMAND} -Qttdq)
289 echo "No packages to remove"