From 204731c0a69136c9cebcb54f1afecf5145e26bbe Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Thu, 23 May 2024 13:26:22 +0200 Subject: refactor(pkgs): Categorize into `by-name` shards This might not be the perfect way to organize a package set -- especially if the set is not nearly the size of nixpkgs -- but it is _at_ least a way of organization. --- pkgs/by-name/sp/spodi/sh/update.sh | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 pkgs/by-name/sp/spodi/sh/update.sh (limited to 'pkgs/by-name/sp/spodi/sh/update.sh') diff --git a/pkgs/by-name/sp/spodi/sh/update.sh b/pkgs/by-name/sp/spodi/sh/update.sh new file mode 100755 index 00000000..a289cf58 --- /dev/null +++ b/pkgs/by-name/sp/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