mirror of
https://github.com/endeavouros-team/PKGBUILDS.git
synced 2026-06-13 01:34:36 +00:00
[reflector-bash-completion] tiny speedup; allow show8ng reflector error code
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
pkgname=reflector-bash-completion
|
||||
pkgdesc="Bash completion support for 'reflector'"
|
||||
pkgver=1.2
|
||||
pkgver=24
|
||||
pkgrel=1
|
||||
arch=('any')
|
||||
license=('GPL')
|
||||
@@ -14,7 +14,7 @@ _url="https://raw.githubusercontent.com/endeavouros-team/PKGBUILDS/master/$pkgna
|
||||
source=(
|
||||
$_url/$pkgname
|
||||
)
|
||||
sha512sums=('7c588c70b34420593bc06b04b2ac2e1e206166716d89b1d6057a410dfc8c19e81f5004156f7493a8bd3a51028fde27c5198fcc6876ce211e2aa426ca1f6c4d81')
|
||||
sha512sums=('3e6fc3ebd28ef43fde99daf120e7db419ed381fba15888096d962834f6d72d4d5d158dc9012fff67656251b5cfa667ce00e8c2a34afefe463c45b4b64fe6bd9d')
|
||||
|
||||
package() {
|
||||
install -Dm644 $pkgname $pkgdir/usr/share/bash-completion/completions/reflector
|
||||
|
||||
@@ -19,18 +19,17 @@ _reflector_complete_threads() {
|
||||
}
|
||||
|
||||
_reflector_complete_countries() {
|
||||
local folder=$HOME/.config/reflector-complete
|
||||
local countrylist=$folder/countrylist
|
||||
local date=$(date +%Y%V) # updates countrylist weekly
|
||||
local -r file=$folder/countrylist.$(/bin/date +%Y%V) # update countrylist weekly
|
||||
local country_names
|
||||
|
||||
mkdir -p $folder
|
||||
if [ -r $countrylist.$date ] ; then
|
||||
country_names="$(cat $countrylist.$date)"
|
||||
if [ -r $file ] ; then
|
||||
country_names="$(< $file)"
|
||||
else
|
||||
rm -f $countrylist.*
|
||||
country_names="$(/bin/reflector --list-countries 2>/dev/null | /bin/sed -n '/^-----/,//'p | /bin/sed -e '1d' -e 's|^\(.*[a-z]\)[ ]*[A-Z][A-Z].*$|\1|')"
|
||||
echo "$country_names" > $countrylist.$date
|
||||
rm -f ${file%.*}.*
|
||||
country_names=$(/bin/reflector --list-countries) || return 1
|
||||
country_names=$(echo "$country_names" | /bin/sed -e '1,2d' -e 's|^\(.*[a-z]\)[ ]*[A-Z][A-Z].*$|\1|')
|
||||
echo "$country_names" > $file
|
||||
fi
|
||||
|
||||
local IFS=$'\n'
|
||||
@@ -39,6 +38,26 @@ _reflector_complete_countries() {
|
||||
compopt -o filenames
|
||||
}
|
||||
|
||||
_reflector_complete_mirrors() {
|
||||
local -r file=$folder/mirrors.$date
|
||||
mkdir -p $folder
|
||||
if [ -r $file ] ; then
|
||||
local mirrors=$(< $file)
|
||||
else
|
||||
local -r timeout=30
|
||||
local -r url="https://archlinux.org/mirrorlist/?protocol=https&ip_version=4&use_mirror_status=on"
|
||||
local mirrors=$(curl --fail -Lsm $timeout "$url" | grep "^#Server = " | awk '{print $NF}')
|
||||
[ "$mirrors" ] || exit 1
|
||||
echo "$mirrors" > $file
|
||||
fi
|
||||
mirrors=$(fzf -m < $file)
|
||||
|
||||
local IFS=$'\n'
|
||||
COMPREPLY=( $(compgen -W "$mirrors" -- "$cur") )
|
||||
compopt -o nosort
|
||||
#compopt -o filenames
|
||||
}
|
||||
|
||||
_reflector_options() {
|
||||
local opts=(
|
||||
--help -h
|
||||
@@ -76,6 +95,8 @@ _reflector_()
|
||||
local cur prev #words cword split
|
||||
_init_completion -s || return
|
||||
|
||||
local -r folder=$HOME/.config/reflector-complete
|
||||
|
||||
# Handle options that need sub-options.
|
||||
# Each option "case" should return immediately.
|
||||
|
||||
@@ -95,7 +116,7 @@ _reflector_()
|
||||
--delay) _reflector_complete ;;
|
||||
--save) _filedir ;;
|
||||
--url) ;;
|
||||
--include | -i | --exclude | -x) ;;
|
||||
--include | -i | --exclude | -x) ;; #_reflector_complete_mirrors ;;
|
||||
|
||||
*)
|
||||
# Handle all top-level parameters.
|
||||
|
||||
Reference in New Issue
Block a user