Implement top_commands function
[khome.git] / home / lib / login_functions.sh
index 7c569dc..e006eee 100644 (file)
@@ -1,8 +1,49 @@
+#
+
+d() {
+    local -r word=$(fzf < /usr/share/dict/words)
+    dict "$word"
+}
+
+top_commands() {
+    history \
+    | awk '
+        {
+            count[$4]++
+        }
+
+        END {
+            for (cmd in count)
+                print count[cmd], cmd
+        }' \
+    | sort -n -r -k 1 \
+    | head -50 \
+    | awk '
+        {
+            cmd[NR] = $2
+            c = count[NR] = $1 + 0  # + 0 to coerce number from string
+            if (c > max)
+                max = c
+        }
+
+        END {
+            for (i = 1; i <= NR; i++) {
+                c = count[i]
+                printf "%s %d ", cmd[i], c
+                scaled = (c * 100) / max
+                for (j = 1; j <= scaled; j++)
+                    printf "|"
+                printf "\n"
+            }
+        }' \
+    | column -t
+}
+
 # Top Disk-Using directories
 # TODO: Consider using numfmt instead of awk
 tdu() {
     du "$1" \
-    | sort -n -k 1 -r --parallel="$(nproc)" \
+    | sort -n -k 1 -r \
     | head -50 \
     | awk '
         {
@@ -89,6 +130,23 @@ howto() {
     cat "$(find  ~/Archives/Documents/HOWTOs -mindepth 1 -maxdepth 1 | sort | fzf)"
 }
 
+yt() {
+    local _yt_uri
+    local _yt_id
+    local _yt_title
+    local _yt_dir
+
+    _yt_uri="$1"
+    _yt_id=$(youtube-dl --get-id "$_yt_uri")
+    _yt_title=$(youtube-dl --get-title "$_yt_uri")
+    _yt_dir="${DIR_YOUTUBE}/individual-videos/${_yt_title}--${_yt_id}"
+
+    mkdir -p "$_yt_dir"
+    cd "$_yt_dir" || exit 1
+    echo "$_yt_uri" > 'uri'
+    youtube-dl -c --write-description --write-info-json "$_yt_uri"
+}
+
 gh_fetch_repos() {
     curl "https://api.github.com/$1/$2/repos?page=1&per_page=10000"
 }
@@ -123,7 +181,7 @@ gh_clone_repo() {
 
 work_log_template() {
 cat << EOF
-$(date +%F)
+$(date '+%F %A')
 ==========
 
 Morning report
@@ -147,13 +205,13 @@ work_log() {
     then
         work_log_template > "$file_work_log_today"
     fi
-    vim "$file_work_log_today"
+    vim -c 'set spell' "$file_work_log_today"
 
 }
 
 note() {
     mkdir -p "$DIR_NOTES"
-    vim "$DIR_NOTES/$(date +'%Y_%m_%d--%H_%M_%S%z')--$1.md"
+    vim -c 'set spell' "$DIR_NOTES/$(date +'%Y_%m_%d--%H_%M_%S%z')--$1.md"
 }
 
 weather() {
This page took 0.026672 seconds and 4 git commands to generate.