From 73cb8c56c72de9dc4e3cc69ea82bde3964632564 Mon Sep 17 00:00:00 2001 From: Soispha Date: Sat, 23 Mar 2024 20:48:36 +0100 Subject: feat(pkgs/scripts/spodi): Rewrite to support artist `update` --- .../scripts/source/specific/spodi/sh/update.sh | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 sys/nixpkgs/pkgs/scripts/source/specific/spodi/sh/update.sh (limited to 'sys/nixpkgs/pkgs/scripts/source/specific/spodi/sh/update.sh') diff --git a/sys/nixpkgs/pkgs/scripts/source/specific/spodi/sh/update.sh b/sys/nixpkgs/pkgs/scripts/source/specific/spodi/sh/update.sh new file mode 100755 index 00000000..a289cf58 --- /dev/null +++ b/sys/nixpkgs/pkgs/scripts/source/specific/spodi/sh/update.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env dash + +update() { + UPDATE_DIRECTORY="%XDG_MUSIC_DIR/artists" + UPDATE_CONFIG_FILE="%XDG_MUSIC_DIR/artists/update.conf" + + if ! [ -f "$UPDATE_CONFIG_FILE" ]; then + error="$( + cat </| + +All comments and empty lines are ignored +EOF + )" + die "$error" + fi + + config_file="$(mktmp)" + clean "$UPDATE_CONFIG_FILE" >"$config_file" + + while IFS="|" read -r artist url; do + full_artist="$UPDATE_DIRECTORY/$artist" + [ -d "$full_artist" ] || mkdir --parents "$full_artist" + [ -d "$full_artist/update" ] || mkdir --parents "$full_artist/update" + [ -d "$full_artist/all" ] || mkdir --parents "$full_artist/all" + [ -d "$full_artist/filtered" ] || mkdir --parents "$full_artist/filtered" + + while read -r file; do + ln --symbolic --relative "$file" "$full_artist/update/$(basename "$file")" + done <"$(tmp fd --type file --extension opus . "$full_artist/all")" + + msg2 "Updating $artist with url: '$url'" + download "$url" "$full_artist/update" + + while read -r file; do + mv "$file" "$full_artist/all" + ln --symbolic --relative "$full_artist/all/$(basename "$file")" "$full_artist/filtered/$(basename "$file")" + done <"$(tmp fd --type file --extension opus . "$full_artist/update")" + + while read -r file; do + rm "$file" + done <"$(tmp fd --type symlink --extension opus . "$full_artist/update")" + + cp "$full_artist/update/spotdl.log" "$full_artist/all/spotdl.$(date +%Y_%m_%d).log" + cp "$full_artist/update/spotdl-errors.log" "$full_artist/all/spotdl-errors.$(date +%Y_%m_%d).log" + done <"$config_file" +} + +# vim: ft=sh -- cgit 1.4.1