diff options
Diffstat (limited to 'haur')
-rwxr-xr-x | haur | 29 |
1 files changed, 25 insertions, 4 deletions
@@ -24,13 +24,13 @@ if [ ! "$HAUR_NO_COLORS" == "y" ]; then ncolors=$(tput colors 2>/dev/null) if test -n "$ncolors" && test "$ncolors" -ge 8; then - # bold="$(tput bold 2>/dev/null)" + bold="$(tput bold 2>/dev/null)" # underline="$(tput smul 2>/dev/null)" # standout="$(tput smso 2>/dev/null)" normal="$(tput sgr0 2>/dev/null)" # black="$(tput setaf 0 2>/dev/null)" red="$(tput setaf 1 2>/dev/null)" - # green="$(tput setaf 2 2>/dev/null)" + green="$(tput setaf 2 2>/dev/null)" # yellow="$(tput setaf 3 2>/dev/null)" blue="$(tput setaf 4 2>/dev/null)" # magenta="$(tput setaf 5 2>/dev/null)" @@ -40,6 +40,16 @@ if [ ! "$HAUR_NO_COLORS" == "y" ]; then fi fi +search () { + search_term=$1 + mapfile -t name < <(curl -s "https://aur.archlinux.org/rpc/?v=5&type=search&arg=$search_term" | jq -r ".results" | jq -r ".[] | .Name") + mapfile -t version < <(curl -s "https://aur.archlinux.org/rpc/?v=5&type=search&arg=$search_term" | jq -r ".results" | jq -r ".[] | .Version") + mapfile -t description < <(curl -s "https://aur.archlinux.org/rpc/?v=5&type=search&arg=$search_term" | jq -r ".results" | jq -r ".[] | .Description") + for (( i=0; i<${#name[@]}; i++ )); do + echo "${bold}${blue}${name[i]} ${green}${version[i]}${normal}: ${description[i]}" + done +} + REMOVE=false CLEAR_CACHE=false UPDATE=false @@ -47,6 +57,7 @@ UPDATE=false for arg in "$@"; do shift case "$arg" in + "--search") set -- "$@" "-s" ;; "--update") set -- "$@" "-u" ;; "--remove") set -- "$@" "-r" ;; "--clear-cache") set -- "$@" "-c" ;; @@ -57,8 +68,11 @@ for arg in "$@"; do done shift $((OPTIND -1)) -while getopts ":urch" opt; do +while getopts ":surch" opt; do case $opt in + s ) + SEARCH=true + ;; u ) UPDATE=true ;; @@ -69,7 +83,7 @@ while getopts ":urch" opt; do CLEAR_CACHE=true ;; h ) - echo "Usage: haur [--remove | -r] | [--clear-cache | -c] [--update | -u] <package names>" + echo "Usage: haur [--remove | -r] | [--clear-cache | -c] [--update | -u] [--search | -s]<package names>" exit 0 ;; \?) @@ -83,6 +97,13 @@ if [ "$HAUR_ALWAYS_CLEAR_CACHE" == "y" ]; then CLEAR_CACHE=true fi +if [ $SEARCH == true ]; then + for PACKAGE_NAME in "$@"; do + search "${PACKAGE_NAME}" || die "Something went wrong while searching for that package." + done + exit 0 +fi + if [ $REMOVE == true ]; then for PACKAGE_NAME in "$@"; do echo "${blue}Removing $PACKAGE_NAME...${normal}" |