X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=home%2Flib%2Flogin_functions.sh;h=3a2120911e0310d689130a052a6866e278d72706;hb=d1d9daef1cd092c0029e2bce2bc2c719616dffab;hp=a0738d9a19d76ce6e1820e604f2820ffdb295ace;hpb=c28f8c74be2ec1bd23d427d135e6242c21e619e7;p=khome.git diff --git a/home/lib/login_functions.sh b/home/lib/login_functions.sh index a0738d9..3a21209 100644 --- a/home/lib/login_functions.sh +++ b/home/lib/login_functions.sh @@ -7,6 +7,7 @@ p() { ' BEGIN {_s = tolower(_s)} + # TODO fzf/dmenu select instead of searching: /^[a-zA-Z]/ && tolower($1) ~ _s && NF >= 2 { n++ s = $1 @@ -32,6 +33,19 @@ p() { printf "%s", p # XXX Intentionally avoiding newline in the result. } + + END { + if (n == 1) { + exit 0 + } else if (n == 0) { + printf "[ERROR] Found nothing.\n" > "/dev/stderr" + exit 1 + } else if (n > 1) { + # TODO fzf-select which of the records the user (ahem, me) wants. + printf "[WARNING] Found more than one record.\n" > "/dev/stderr" + exit 0 + } + } ' \ ~/._p/p \ | xsel -i -b -t 30000 @@ -328,14 +342,15 @@ _yt() { local -r uri="$2" local -r opts="$3" - local -r id=$(youtube-dlc --get-id "$uri") - local -r title=$(youtube-dlc --get-title "$uri" | sed 's/[^А-Яа-яA-Za-z0-9._-]/_/g') + local -r yt=youtube-dl + local -r id=$("$yt" --get-id "$uri") + local -r title=$("$yt" --get-title "$uri" | sed 's/[^А-Яа-яA-Za-z0-9._-]/_/g') local -r dir="${base_dir}/${title}--${id}" mkdir -p "$dir" cd "$dir" || kill -INT $$ echo "$uri" > 'uri' - youtube-dlc $opts -c --write-description --write-info-json "$uri" + "$yt" $opts -c --write-all-thumbnails --write-description --write-info-json "$uri" } yt_audio() { @@ -363,7 +378,7 @@ gh_clone() { mkdir -p "$gh_dir" cd "$gh_dir" || kill -INT $$ gh_fetch_repos "$gh_user_type" "$gh_user_name" \ - | jq --raw-output '.[] | select(.fork | not) | .git_url' \ + | jq --raw-output '.[] | select(.fork | not) | .clone_url' \ | parallel -j 25 \ git clone {} }