OSDN Git Service

[update] : Supported fullpath
[alterlinux/aptpac.git] / aptpac
diff --git a/aptpac b/aptpac
index f17e1f5..547994c 100755 (executable)
--- a/aptpac
+++ b/aptpac
 # (c) 2019-2020 Fascode Network.
 # maintained by Yamada Hayao
 
+APTPAC_VERSION="2.2.0"
+
 set -e
 
 OPTIONS=
-AURHELP=
+AURHELPER="/usr/bin/hoge"
 HELPERS=(
-    "yay"
-    "yaourt"
-    "aurman"
+    "/usr/bin/yay"
+    "/usr/bin/yaourt"
+    "/usr/bin/aurman"
+    "/usr/bin/pikaur"
+    "/usr/bin/pacaur"
 )
 
+DEFAULT_PACMAN_COMMAND="pacman"
+
 debug=false
-pacman="pacman"
+PACMAN_COMMAND="${DEFAULT_PACMAN_COMMAND}"
+
 
+_msg_error () {
+    echo -e "${@}" >&2
+}
+
+_msg_debug () {
+    if ${debug}; then
+        echo -e "${@}" >&1
+    fi
+}
 
 if [[ ! "${UID}" = 0 ]]; then
-    if [[ -z ${AURHELP} ]]; then
-        for AURHELP in ${HELPERS[@]}; do
-            if [[ -f $(which ${AURHELP} 2> /dev/null) ]]; then
-                pacman=$(which ${AURHELP})
+    if [[ -z "${AURHELPER}" ]]; then
+        for AURHELPER in ${HELPERS[@]}; do
+            if [[ -f "${AURHELPER}" ]]; then
+                PACMAN_COMMAND="${AURHELPER}"
+                break
+            elif hash "$(basename "${AURHELPER}")" 2> /dev/null; then
+                PACMAN_COMMAND="$(basename "${AURHELPER}")"
                 break
             fi
         done
+        if [[ "${PACMAN_COMMAND}" == "${DEFAULT_PACMAN_COMMAND}" ]]; then
+            PACMAN_COMMAND="sudo ${DEFAULT_PACMAN_COMMAND}"
+        fi
     else
-        if [[ -f $(which ${AURHELP} 2> /dev/null) ]]; then
-            pacman=${AURHELP}
+        if [[ -f "${AURHELPER}" ]]; then
+            PACMAN_COMMAND="${AURHELPER}"
+        elif hash "$(basename "${AURHELPER}")" 2> /dev/null; then
+            PACMAN_COMMAND="$(basename "${AURHELPER}")"
         else
-            echo "${AURHELP} is not installed." >&2
+            _msg_error "${AURHELPER} is not installed."
             exit 1
         fi
     fi
 fi
 
 
-if [[ ! "${UID}" = 0 ]]; then
-    pacman="sudo pacman"
-fi
-
-
 # List option
 installed=false
 
@@ -80,10 +99,14 @@ _exit () {
     exit ${1}
 }
 
-_msg_error () {
-    echo -e "${@}" >&2
+_version () {
+cat << EOF
+aptpac ${APTPAC_VERSION} - A pacman wrapper with syntax based on debian's apt
+(c) 2019-2020 Fascode Network. Yamada Hayao
+EOF
 }
 
+
 ADD_OPTION () {
     OPTIONS="${OPTIONS} ${@}"
 }
@@ -136,8 +159,11 @@ case "${COMMAND}" in
     huawei) 
         if [[ "${LANG}" = "ja_JP.UTF-8" ]]; then
             echo "(ง •ᴗ•)ว ⁾⁾ファーウェイでウェイウェイ"
+            _exit 0
+        else
+            _msg_error "Invalid comman '${COMMAND}'"
+            _exit 1
         fi
-        exit 0
         ;;
     moo)
 cat << EOF
@@ -154,9 +180,9 @@ EOF
     clean)
         ADD_OPTION "-Sccc"
         ;;
-    autoremove) if [[ -n $(${pacman} -Qttdq) ]]; then
+    autoremove) if [[ -n $(${PACMAN_COMMAND} -Qttdq) ]]; then
                     ADD_OPTION "=Rsc"
-                    PACKAGE="$(${pacman} -Qttdq)"
+                    PACKAGE="$(${PACMAN_COMMAND} -Qttdq)"
                 else
                     echo "No packages to remove."
                     exit 0
@@ -175,9 +201,9 @@ EOF
         ;;
 esac
 
-if [[ ! "${pacman}" = "pacman" ]] && [[ ! "${pacman}" = "sudo pacman" ]]; then
-    echo "Use AUR helper ${pacman}."
+if [[ ! "${PACMAN_COMMAND}" = "pacman" ]] && [[ ! "${PACMAN_COMMAND}" = "sudo pacman" ]]; then
+    _msg_debug "Use AUR helper ${PACMAN_COMMAND}."
 fi
 
-# echo "${pacman} ${OPTIONS} ${PACKAGE}"
-${pacman} ${OPTIONS} ${PACKAGE}
+# echo "${PACMAN_COMMAND} ${OPTIONS} ${PACKAGE}"
+${PACMAN_COMMAND} ${OPTIONS} ${PACKAGE}