@@ -32,9 +32,11 @@ HELPERS=(
3232 " /usr/bin/aura"
3333)
3434DEFAULT_PACMAN_COMMAND=" /usr/bin/pacman"
35- debug=false
3635PACMAN_COMMAND=" ${DEFAULT_PACMAN_COMMAND} "
3736PACMAN_CONFIG=" /etc/pacman.conf"
37+
38+ direct_option=false
39+ debug=false
3840autoremove=false
3941
4042_msg_error () {
@@ -79,6 +81,7 @@ installed=false
7981
8082_usage () {
8183 echo " usage ${0} [options] [command] [packages]"
84+ echo
8285 echo " apt commands:"
8386 echo " install Install the specified package"
8487 echo " remove Remove the specified package"
@@ -104,6 +107,8 @@ _usage () {
104107 echo " --aur-helper <command> Specifies the command to use as the AUR helper"
105108 echo " Ignored if pacapt is run as root"
106109 echo " Specify AUR helper that supports common command line options with pacman"
110+ echo
111+ echo " aptpac supports not only above options but also options of pacman"
107112}
108113
109114_exit () {
@@ -126,12 +131,15 @@ ADD_OPTION () {
126131}
127132
128133# Argument analysis and processing
129- _opt_short=" ydfc:hv"
134+ set +e
135+ PACAPT_ARGUMENTS=" ${@ } "
136+ _opt_short=" ydfc:hvVDFQRSTU"
130137_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
133- exit 1
134- fi
138+ OPT=$( getopt -o ${_opt_short} -l ${_opt_long} -- " ${@ } " 2> /dev/null)
139+ set -e
140+ # if [[ ${?} != 0 ]]; then
141+ # exit 1
142+ # fi
135143
136144eval set -- " ${OPT} "
137145# echo "Argument is \"${OPT}\""
@@ -191,6 +199,12 @@ while true; do
191199 _msg_error " ${2} is not installed"
192200 exit 1
193201 fi
202+ break
203+ ;;
204+ -V | -D | -F | -Q | -R | -S | -T | -U)
205+ direct_option=true
206+ ADD_OPTION " ${PACAPT_ARGUMENTS} "
207+ break
194208 ;;
195209 --)
196210 shift 1
@@ -204,94 +218,96 @@ while true; do
204218 esac
205219done
206220
207- if [[ $# -lt 1 ]]; then
208- _msg_error " No command specified"
209- _usage
210- _exit 1
211- fi
212- COMMAND=" ${1} "
221+ if [[ " ${direct_option} " = false ]]; then
222+ if [[ $# -lt 1 ]]; then
223+ _msg_error " No command specified"
224+ _usage
225+ _exit 1
226+ fi
227+ COMMAND=" ${1} "
213228
214- shift 1
229+ shift 1
215230
216- PACKAGE=" ${@ } "
231+ PACKAGE=" ${@ } "
217232
218- case " ${COMMAND} " in
219- install)
220- ADD_OPTION " -S"
221- ;;
222- remove)
223- ADD_OPTION " -Rsc"
224- ;;
225- purge)
226- ADD_OPTION " -Rsnc"
227- ;;
228- update)
229- ADD_OPTION " -Syy"
230- ;;
231- upgrade)
232- ADD_OPTION " -Syu"
233- ;;
234- search)
235- ADD_OPTION " -Ss"
236- ;;
237- full-upgrade)
238- ADD_OPTION " -Syu"
239- ;;
240- edit-sources)
241- if [[ -n " ${EDITOR} " ]]; then
242- sudo ${EDITOR} " ${PACMAN_CONFIG} "
243- else
244- sudo nano " ${PACMAN_CONFIG} "
245- fi
246- _exit 0
247- ;;
248- dist-upgrade)
249- ADD_OPTION " -Syu"
250- ;;
251- huawei)
252- source " /etc/locale.conf"
253- if [[ " ${LANG} " = " ja_JP.UTF-8" ]]; then
254- echo " (ง •ᴗ•)ว ⁾⁾ファーウェイでウェイウェイ"
233+ case " ${COMMAND} " in
234+ install)
235+ ADD_OPTION " -S"
236+ ;;
237+ remove)
238+ ADD_OPTION " -Rsc"
239+ ;;
240+ purge)
241+ ADD_OPTION " -Rsnc"
242+ ;;
243+ update)
244+ ADD_OPTION " -Syy"
245+ ;;
246+ upgrade)
247+ ADD_OPTION " -Syu"
248+ ;;
249+ search)
250+ ADD_OPTION " -Ss"
251+ ;;
252+ full-upgrade)
253+ ADD_OPTION " -Syu"
254+ ;;
255+ edit-sources)
256+ if [[ -n " ${EDITOR} " ]]; then
257+ sudo ${EDITOR} " ${PACMAN_CONFIG} "
258+ else
259+ sudo nano " ${PACMAN_CONFIG} "
260+ fi
255261 _exit 0
256- else
262+ ;;
263+ dist-upgrade)
264+ ADD_OPTION " -Syu"
265+ ;;
266+ huawei)
267+ source " /etc/locale.conf"
268+ if [[ " ${LANG} " = " ja_JP.UTF-8" ]]; then
269+ echo " (ง •ᴗ•)ว ⁾⁾ファーウェイでウェイウェイ"
270+ _exit 0
271+ else
272+ _msg_error " Invalid command '${COMMAND} '"
273+ _exit 1
274+ fi
275+ ;;
276+ moo)
277+ echo " (__) "
278+ echo " (oo) "
279+ echo " /------\/ "
280+ echo " / | || "
281+ echo " * /\---/\ "
282+ echo " ~~ ~~ "
283+ echo " ...." Have you mooed today? " ..."
284+ exit 0
285+ ;;
286+ clean)
287+ ADD_OPTION " -Sccc"
288+ ;;
289+ autoremove)
290+ if [[ -n $( ${PACMAN_COMMAND} -Qttdq) ]]; then
291+ ADD_OPTION " -Rsc"
292+ PACKAGE=" $( ${PACMAN_COMMAND} -Qttdq) "
293+ else
294+ echo " No packages to remove"
295+ exit 0
296+ fi
297+ ;;
298+ list)
299+ if ${installed} ; then
300+ ADD_OPTION " -Q | grep"
301+ else
302+ ADD_OPTION " -Ss"
303+ fi
304+ ;;
305+ * )
257306 _msg_error " Invalid command '${COMMAND} '"
258307 _exit 1
259- fi
260- ;;
261- moo)
262- echo " (__) "
263- echo " (oo) "
264- echo " /------\/ "
265- echo " / | || "
266- echo " * /\---/\ "
267- echo " ~~ ~~ "
268- echo " ...." Have you mooed today? " ..."
269- exit 0
270- ;;
271- clean)
272- ADD_OPTION " -Sccc"
273- ;;
274- autoremove)
275- if [[ -n $( ${PACMAN_COMMAND} -Qttdq) ]]; then
276- ADD_OPTION " -Rsc"
277- PACKAGE=" $( ${PACMAN_COMMAND} -Qttdq) "
278- else
279- echo " No packages to remove"
280- exit 0
281- fi
282- ;;
283- list)
284- if ${installed} ; then
285- ADD_OPTION " -Q | grep"
286- else
287- ADD_OPTION " -Ss"
288- fi
289- ;;
290- * )
291- _msg_error " Invalid command '${COMMAND} '"
292- _exit 1
293- ;;
294- esac
308+ ;;
309+ esac
310+ fi
295311
296312if [[ ! " ${PACMAN_COMMAND} " = " pacman" ]] && [[ ! " ${PACMAN_COMMAND} " = " sudo pacman" ]]; then
297313 _msg_debug " Use AUR helper ${PACMAN_COMMAND} "
0 commit comments