Accept a name for dl and include starter script file
[khome.git] / home / lib / login_functions.sh
index 2897286..56e0c2b 100644 (file)
@@ -1,4 +1,4 @@
-#
+#! /bin/bash
 
 ## open : string -> unit
 ##
@@ -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"
 }
 
This page took 0.02649 seconds and 4 git commands to generate.