X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=home%2Flib%2Flogin_functions.sh;h=56e0c2b7a34457404fc23e26ea4e934bcaf783ec;hb=HEAD;hp=c393938ccdbf784c6077b294e453a71e6d517eb5;hpb=9492242e5dc9999cafafb7492077a7cc8f1ba6e3;p=khome.git diff --git a/home/lib/login_functions.sh b/home/lib/login_functions.sh index c393938..56e0c2b 100644 --- a/home/lib/login_functions.sh +++ b/home/lib/login_functions.sh @@ -26,83 +26,30 @@ notify_done() { fi } -## p : string -> unit -p() { - local -r usage='Usage: p [FILE] NAME' - local name - local file - - case "$#" in - 0) - echo "$usage" >&2 - return 1;; - 1) - file=~/._p/p - name="$1";; - 2) - file="$1" - name="$2";; - *) - echo "$usage" >&2 - return 1;; - esac - - awk \ - -v _s="$name" \ - ' - BEGIN {_s = tolower(_s)} - - # TODO fzf/dmenu select instead of searching: - /^[a-zA-Z]/ && tolower($1) ~ _s && NF >= 2 { - n++ - s = $1 - p = $NF - if (NF == 2) { - e = "" - u = "" - } else if (NF == 3) { - e = $2 - u = "" - } else { - e = $2 - u = $3 - } # TODO What would NF > 4 mean? - - printf("%d [O] s:\"%s\", e:\"%s\", u:\"%s\"\n", n, s, e, u) > "/dev/stderr" - if (match(u, "@")) { - tmp = e - e = u - u = tmp - printf("%d [C] s:\"%s\", e:\"%s\", u:\"%s\"\n", n, s, e, u) > "/dev/stderr" - } - ps[n] = p - } - - END { - printf "%s", ps[n] # XXX Intentionally avoiding newline in the result. - 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. Selecting the last one.\n" > "/dev/stderr" - exit 0 - } - } - ' \ - "$file" \ - | xsel -i -b -t 30000 +_dl_script() { +cat << EOF +#! /bin/bash +wget -c \$(< ./url) +EOF } dl() { + local -r name="$1" + local -r url="$2" + local -r timestamp="$(date --iso-8601=ns)" - local -r dir="$HOME"/dl/adhoc/"$timestamp" + local -r dir="$HOME"/dl/adhoc/"$timestamp"--"$name" local -r url_file_path="${dir}/url" + local -r dl_file_path="${dir}/dl" mkdir -p "$dir" touch "$url_file_path" + if [ "$url" != '' ] + then + echo "$url" > "$url_file_path" + fi + _dl_script > "$dl_file_path" + chmod +x "$dl_file_path" cd "$dir" }