about summary refs log tree commit diff stats
path: root/sys/nixpkgs/pkgs/scripts/source/wrappers
diff options
context:
space:
mode:
Diffstat (limited to 'sys/nixpkgs/pkgs/scripts/source/wrappers')
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/battery.sh11
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/hibernate.sh15
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/ll.sh14
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/lock.sh18
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/lyrics.sh11
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/mpc-fav.sh14
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/mpc-rm.sh10
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/mpc.sh20
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/show.sh9
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/sort_song.sh34
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/spodi.sh55
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/virsh-del.sh10
-rwxr-xr-xsys/nixpkgs/pkgs/scripts/source/wrappers/yti.sh33
13 files changed, 254 insertions, 0 deletions
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/battery.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/battery.sh
new file mode 100755
index 00000000..65485dff
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/battery.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+capacity="$(cat /sys/class/power_supply/BAT0/capacity)"
+status="$(cat /sys/class/power_supply/BAT0/status)"
+
+printf "%s%% (%s)\n" "$capacity" "$status"
+
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/hibernate.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/hibernate.sh
new file mode 100755
index 00000000..f3e74732
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/hibernate.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+context="$(task _get rc.context)"
+[ "$context" ] && task context none
+
+# We have ensured that only one task is active
+active="$(task +ACTIVE _ids)"
+[ "$active" ] && task stop "$active"
+
+systemctl hibernate "$@"
+
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/ll.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/ll.sh
new file mode 100755
index 00000000..2a65d0a6
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/ll.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+last_directory="$(mktemp)"
+
+command lf -last-dir-path="$last_directory" "$@"
+
+dir="$(cat "$last_directory")"
+cd "$dir" || die "$dir does not exist!"
+rm "$last_directory"
+
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/lock.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/lock.sh
new file mode 100755
index 00000000..f1c5c711
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/lock.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+context="$(task _get rc.context)"
+[ "$context" ] && task context none
+
+# We have ensured that only one task is active
+active="$(task +ACTIVE _ids)"
+[ "$active" ] && task stop "$active"
+
+swaylock
+
+[ "$active" ] && task start "$active"
+
+[ "$context" ] && task context "$context"
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/lyrics.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/lyrics.sh
new file mode 100755
index 00000000..83a01083
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/lyrics.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+(
+    cd "$XDG_MUSIC_DIR" || die "No music dir!"
+    exiftool "$(mpc --format '%file%' current)" -json | jq '.[0].Lyrics' -r | less
+)
+
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/mpc-fav.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/mpc-fav.sh
new file mode 100755
index 00000000..7385ce43
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/mpc-fav.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+FAV_DIR="$XDG_MUSIC_DIR/playlists/favourites"
+
+cd "$XDG_MUSIC_DIR" || die "No music dir!"
+
+[ -d "$FAV_DIR" ] || mkdir --parents "$FAV_DIR"
+
+ln -sr "$(mpc --format '%file%' current)" "$FAV_DIR/" || die "Link failed!"
+
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/mpc-rm.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/mpc-rm.sh
new file mode 100755
index 00000000..03673dbe
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/mpc-rm.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+cd "$XDG_MUSIC_DIR" || die "No music dir!"
+trash-put "$(mpc --format '%file%' current)"
+mpc del 0
+
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/mpc.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/mpc.sh
new file mode 100755
index 00000000..b870150b
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/mpc.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+case "$1" in
+"rm")
+    shift 1
+    mpc-rm "$@"
+    ;;
+"fav")
+    shift 1
+    mpc-fav "$@"
+    ;;
+*)
+    mpc "$@"
+    ;;
+esac
+
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/show.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/show.sh
new file mode 100755
index 00000000..95afb16c
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/show.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+# Maybe add `--quit-if-one-screen`
+less --redraw-on-quit "$@"
+
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/sort_song.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/sort_song.sh
new file mode 100755
index 00000000..8195cfcf
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/sort_song.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+case "$("$1" | tr '[:upper:]' '[:lower:]')" in
+"lyrics")
+    filter="LYRICS"
+    directory="lyrics"
+    ;;
+"instrumental")
+    filter="INSTRUMENTAL"
+    directory="instrumental"
+    ;;
+*)
+    die "Expected 'instrumental|lyrics' but got '$1'"
+    ;;
+esac
+
+process() {
+    mediainfo --Output=JSON "$1" | jq '.media.track | map(.Lyrics) | join("")'
+}
+
+mkdir "../$directory"
+
+fd . --extension=opus | while read -r file; do
+    if [ "$(process "$file")" = '""' ] || [ "$(process "$file")" = '"Instrumental"' ] || [ "$(process "$file")" = '"instrumental"' ]; then
+        echo "INSTRUMENTAL::$file"
+    else
+        echo "LYRICS::$file"
+    fi
+done | grep "$filter" | awk 'BEGIN {FS="::"}{print $2}' | while read -r file; do ln -s "../all/$file" "../$directory/$file"; done
+
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/spodi.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/spodi.sh
new file mode 100755
index 00000000..8b4188b0
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/spodi.sh
@@ -0,0 +1,55 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+# This path must not contain spaces
+DOWN_DIR="/home/soispha/media/music/down/spotify"
+
+download_url="$1"
+
+already_downloaded_files="$(mktmp)"
+fd . "$DOWN_DIR" --exclude spotdl.log --exclude spotdl-errors.log >"$already_downloaded_files"
+
+config="$(mktmp)"
+cat <<EOF | clean >"$config"
+# Main options
+--audio slider-kz bandcamp youtube-music piped youtube soundcloud
+--lyrics genius musixmatch azlyrics synced
+
+# FFmpeg options
+--ffmpeg ffmpeg
+--threads 16
+--bitrate 256k
+
+# Spotify options
+--cache-path /home/soispha/.cache/spotdl/.spotipy
+
+# Output options
+--preload
+--format opus
+--output {artists}_-_{title}
+--print-errors
+--save-errors $DOWN_DIR/spotdl-errors.log
+# TODO: Reactive whence spotdl support for these has improved <2023-12-19>
+# --generate-lrc
+--overwrite skip
+
+# Misc options
+--log-level INFO
+EOF
+
+if [ -z "$NO_CHECK" ] && [ "$(wc -l <"$already_downloaded_files")" -ne 0 ]; then
+    die "something is already downloaded"
+fi
+
+rm "$DOWN_DIR/spotdl.log"
+cd "$DOWN_DIR" || die "BUG: no $DOWN_DIR"
+touch "$DOWN_DIR/spotdl-errors.log"
+
+# The sub shell needs to be unquoted, as the arguments may not be treated as one.
+# shellcheck disable=2046
+unbuffer spotdl $(cat "$config") download "$download_url" | tee "$DOWN_DIR/spotdl.log"
+
+[ -d ~/.spotdl ] && rm -r ~/.spotdl
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/virsh-del.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/virsh-del.sh
new file mode 100755
index 00000000..96a9404d
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/virsh-del.sh
@@ -0,0 +1,10 @@
+#! /usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+virsh destroy "$1"
+virsh undefine "$1" --nvram
+virsh vol-delete --pool default "$1".qcow2
+
+# vim: ft=sh
diff --git a/sys/nixpkgs/pkgs/scripts/source/wrappers/yti.sh b/sys/nixpkgs/pkgs/scripts/source/wrappers/yti.sh
new file mode 100755
index 00000000..caa5f443
--- /dev/null
+++ b/sys/nixpkgs/pkgs/scripts/source/wrappers/yti.sh
@@ -0,0 +1,33 @@
+#! /usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+DOWN_DIR=/home/soispha/media/music/down/youtube
+
+tmp=$(mktmp)
+config=$(mktmp)
+
+for e in "$DOWN_DIR"/*.opus; do echo "$e" >>"$tmp"; done
+[ "$(wc -l "$tmp" | awk '{print $1}')" -gt 2 ] && die "something is already downloaded"
+
+cat <<EO >"$config"
+--paths home:"$DOWN_DIR"
+#--output %(fulltitle)
+--restrict-filenames
+--no-overwrites
+--no-write-info-json
+--clean-info-json
+--prefer-free-formats
+#--format mp3
+--extract-audio
+--audio-quality 0
+--audio-format best
+EO
+
+rm "$DOWN_DIR/yt-dlp.log"
+cd "$DOWN_DIR" || die "BUG: no $DOWN_DIR"
+
+unbuffer yt-dlp --config-location "$config" "$1" | tee "$DOWN_DIR/yt-dlp.log"
+
+# vim: ft=sh