Skip to content

Commit 1b9253e

Browse files
committed
Merge branch 'pacman-options'
2 parents 1cc17f7 + db02ff8 commit 1b9253e

File tree

1 file changed

+104
-88
lines changed

1 file changed

+104
-88
lines changed

aptpac

Lines changed: 104 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,11 @@ HELPERS=(
3232
"/usr/bin/aura"
3333
)
3434
DEFAULT_PACMAN_COMMAND="/usr/bin/pacman"
35-
debug=false
3635
PACMAN_COMMAND="${DEFAULT_PACMAN_COMMAND}"
3736
PACMAN_CONFIG="/etc/pacman.conf"
37+
38+
direct_option=false
39+
debug=false
3840
autoremove=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

136144
eval 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
205219
done
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

296312
if [[ ! "${PACMAN_COMMAND}" = "pacman" ]] && [[ ! "${PACMAN_COMMAND}" = "sudo pacman" ]]; then
297313
_msg_debug "Use AUR helper ${PACMAN_COMMAND}"

0 commit comments

Comments
 (0)