["Install dependent packages..."]="依存パッケージをインストールします..."
["Found %s"]="%s を見つけました"
["Packages to cleanBuild? [n] :"]="パッケージをクリーンビルドしますか? [n] :"
- ["Could not find all required packages:\n %s"]="必要なすべてのパッケージが見つかりませんでした %s"
+ ["Could not find all required packages: %s"]="必要なすべてのパッケージが見つかりませんでした: %s"
["This is a feature that has not been implemented yet"]="まだ実装されていない機能です"
+ ["Package not found on AUR: %s"]="パッケージがAUR上から見つかりませんでした: "
["(Orphaned)"]="(メンテナ不在)"
["[Installed]"]="[インストール済み]"
echo
echo "operations:"
echo " ${wfa_command} {-h --help}"
+ echo " ${wfa_command} {-A --vote}"
echo " ${wfa_command} {-V --version}"
#echo " ${wfa_command} {-D --database} <options> <package(s)>"
#echo " ${wfa_command} {-F --files} [options] [package(s)]"
msg_info "Searching in AUR ..."
local _aur_json=$("${curl_command}" ${curl_args} -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}"
+ msg_error "Could not find all required packages: %s" "${_package}"
exit 1
fi
local _aur_json=$("${curl_command}" ${curl_args} -sL "https://aur.archlinux.org/rpc/?v=5&type=search&by=name-desc&arg=${_package}" | jq -r )
local _found_result_count="$(echo "${_aur_json}" | jq -r ".resultcount")"
if (( "${_found_result_count}" == 0 )); then
- msg_error "Could not find all required packages:\n %s" "${_package}"
+ msg_error "Could not find all required packages: %s" "${_package}"
exit 1
fi
_aur_json=$(echo "${_aur_json}" | jq -r ".results[]")
}
+operation_vote() {
+ local _package _aur_json _found_result_count _pkgver _before_popularity _before_vote
+ for _package in ${specified_packages[@]}; do
+
+ # 存在するパッケージか確認
+ _aur_json=$("${curl_command}" ${curl_args} -sL "https://aur.archlinux.org/rpc/?v=5&type=search&by=name-desc&arg=${_package}" | jq -r)
+ _found_result_count="$(echo "${_aur_json}" | jq -r ".resultcount")"
+ _aur_json=$(echo "${_aur_json}" | jq -r ".results[] | select(.Name == \"${_package}\")")
+ if (( "${_found_result_count}" == 0 )) || [[ -z "${_aur_json}" ]]; then
+ msg_error "Package not found on AUR: %s" "${_package}"
+ exit 1
+ fi
+
+ # jsonから値を取り出して整形
+ _pkgver="$(echo "${_aur_json}" | jq -r ".Version" )"
+ _before_popularity="$(printf "%g\n" "$(echo "${_aur_json}" | jq -r ".Popularity" )" | awk '{printf("%4.2f", $1)}')"
+ _before_vote="$(echo "${_aur_json}" | jq -r ".NumVotes" )"
+
+ # 投票を操作
+ if [[ "$(aurvote --check "${_package}")" = "not voted" ]]; then
+ msg_info "Voted for %s" "${_package}"
+ aurvote --vote "${_package}" 1> /dev/null
+ else
+ msg_info "Unvoted for %s" "${_package}"
+ aurvote --unvote "${_package}" 1> /dev/null
+ fi
+
+ # 投票後の値を取得
+ _aur_json=$("${curl_command}" ${curl_args} -sL "https://aur.archlinux.org/rpc/?v=5&type=search&by=name-desc&arg=${_package}" | jq -r ".results[] | select(.Name == \"${_package}\")")
+ _after_popularity="$(printf "%g\n" "$(echo "${_aur_json}" | jq -r ".Popularity" )" | awk '{printf("%4.2f", $1)}')"
+ _after_vote="$(echo "${_aur_json}" | jq -r ".NumVotes" )"
+
+ # 結果を出力
+ msg_info "%s %s (+%s) → (+%s)" "$(text -b "${_package}")" "$(text -c cyan "${_pkgver}")" "$(text -b "${_before_vote} ${_before_popularity}")" "$(text -b "${_after_vote} ${_after_popularity}")"
+ done
+}
+
# Parse options
ARGUMENT="${@}"
-_opt_short="QRShVdb:aysuc"q
+_opt_short="AQRShVdb:aysuc"q
_opt_long="query,remove,sync,help,version,debug,dbpath:,aururl,aur,noconfirm,config:,makepkg:,mflags:,pacman:,git:,gitflags:,gpg:,gpgflags:,makepkgconf:,nomakepkgconf,nodeps,refresh,bash-debug,msg-debug,sysupgrade,color:,nocolor,clean,quiet,arch:,confirm,disable-download-timeout,curl:,curlflags:"
OPT=$(getopt -o ${_opt_short} -l ${_opt_long} -- ${ARGUMENT})
while :; do
case ${1} in
+ -A | --vote)
+ set_operation "vote"
+ shift 1
+ ;;
-Q | --query)
set_operation "query"
shift 1
run_pacman -Syy
fi
+# set_operationで設定された操作を実行
case "${operation}" in
"version")
operation_version
"remove")
operation_remove
;;
+ "vote")
+ operation_vote
+ ;;
"none")
exit 0
;;