OSDN Git Service

[update] : Supported aur package search
authorhayao <shun819.mail@gmail.com>
Sat, 19 Dec 2020 06:12:05 +0000 (15:12 +0900)
committerhayao <shun819.mail@gmail.com>
Sat, 19 Dec 2020 06:12:05 +0000 (15:12 +0900)
wfa

diff --git a/wfa b/wfa
index 91b9e1e..928e260 100755 (executable)
--- a/wfa
+++ b/wfa
@@ -394,6 +394,47 @@ check_aur_package() {
     fi
 }
 
+
+get_cache_dir() {
+    local _user_config_dir
+    if [[ -v XDG_CONFIG_HOME ]]; then
+        _user_config_dir="${XDG_CONFIG_HOME}"
+    else
+        _use_config_dir="${HOME}/.config"
+    fi
+    if [[ -f "${_use_config_dir}/user-dirs.dirs" ]]; then
+        source "${_use_config_dir}/user-dirs.dirs"
+    fi
+    if [[ -v XDG_CACHE_HOME ]]; then
+        echo -n "${XDG_CACHE_HOME}"
+        return 0
+    else
+        echo -n "${HOME}/.cache"
+        return 0
+    fi
+}
+
+# AURからパッケージをビルドしてインストールします
+# 現在1つのパッケージしか指定できません
+install_aur_package() {
+    local _package="${1}"
+
+    # Create cache dir
+    if [[ ! -v wfa_cache_dir ]]; then
+        wfa_cache_dir="$(get_cache_dir)/wfa"
+    fi
+    mkdir -p "${wfa_cache_dir}"
+
+    # AurJsonから値を取得
+    local _aur_json=$(curl -sL "https://aur.archlinux.org/rpc/?v=5&type=search&by=name&arg=${_package}" | jq -r)
+    if (( "$(echo "${_aur_json}" | jq -r ".resultcount")" == 0 )); then
+        msg_error "Could not find all required packages:\n     ${_package}" 1
+       fi
+
+    local _found_packages="$(echo "${_aur_json}" | jq -r --tab '.results[].Name' | tr '\n' ' ')"
+       msg_debug "Found package: ${_found_packages}"
+}
+
 # バージョンを表示して終了
 operation_version() {
     # Pyalpmからlibalpmの値を取得
@@ -415,7 +456,8 @@ operation_sync() {
             run_pacman "${_package}"
         else
             # AUR上のパッケージの場合の処理
-            msg_error "Getting the AUR package has not been implemented yet." 1
+            install_aur_package "${_package}"
+            #msg_error "Getting the AUR package has not been implemented yet." 1
         fi
     done
 }