nix-configs

Personal NixOS and home-manager configuration files
Log | Files | Refs

commit 71868f72a7b5b92b263aa064fb36a02c578fd0b7
parent 6c6aa15ae4606b3069ca5e12d92d07e569ed733b
Author: breadcat <breadcat@users.noreply.github.com>
Date:   Fri, 21 Aug 2026 17:41:19 +0100

Check for blank DB and offer to delete

Diffstat:
Mscripts/watchedlist.nix | 64++++++++++++++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 52 insertions(+), 12 deletions(-)

diff --git a/scripts/watchedlist.nix b/scripts/watchedlist.nix @@ -12,22 +12,62 @@ let # checks if [ ! -f "$database" ] then - echo Database "$database" file missing, exiting + echo "Database \"$database\" file missing, exiting" exit 0 fi - # TODO: blank database check + + # count watched content + movie_count=$(sqlite3 "$database" "SELECT COUNT(*) FROM movie_watched;") + episode_count=$(sqlite3 "$database" "SELECT COUNT(*) FROM episode_watched;") + + # blank database + if [ "$movie_count" -eq 0 ] && [ "$episode_count" -eq 0 ] + then + echo "Warning: blank database detected." + echo "No watched movies or TV episodes were found in \"$database\"." + printf "Do you want to delete this database? [y/N] " + read -r answer + + case "$answer" in + [yY]|[yY][eE][sS]) + rm "$database" + echo "Database \"$database\" deleted." + ;; + *) + echo "Database retained." + ;; + esac + + exit 0 + fi + # movies - sqlite3 -noheader -quote "$database" "SELECT title FROM movie_watched" | sed "s/^'//;s/'$//" | sed 's/^/* /' > movies.md + if [ "$movie_count" -gt 0 ] + then + sqlite3 -noheader -quote "$database" "SELECT title FROM movie_watched;" | + sed "s/^'//;s/'$//" | + sed 's/^/* /' > movies.md + + echo "Created movies.md ($movie_count movies)" + fi + # tv shows - watched_ids=$(sqlite3 -noheader "$database" "SELECT DISTINCT idShow FROM episode_watched;") - for id in $watched_ids; do - title=$(sqlite3 -noheader -quote "$database" "SELECT title FROM tvshows WHERE idShow = $id;") - title=''${title//\"/} - title=''${title//\'/} - latest_season=$(sqlite3 -noheader "$database" "SELECT MAX(season) FROM episode_watched WHERE idShow = $id;") - latest_episode=$(sqlite3 -noheader "$database" "SELECT MAX(episode) FROM episode_watched WHERE idShow = $id AND season = $latest_season;") - echo "* "$title" ("$latest_season"x"$latest_episode")" - done > tv_shows.md + if [ "$episode_count" -gt 0 ] + then + watched_ids=$(sqlite3 -noheader "$database" "SELECT DISTINCT idShow FROM episode_watched;") + + for id in $watched_ids + do + title=$(sqlite3 -noheader -quote "$database" "SELECT title FROM tvshows WHERE idShow = $id;") + title=''${title//\"/} + title=''${title//\'/} + latest_season=$(sqlite3 -noheader "$database" "SELECT MAX(season) FROM episode_watched WHERE idShow = $id;") + latest_episode=$(sqlite3 -noheader "$database" "SELECT MAX(episode) FROM episode_watched WHERE idShow = $id AND season = $latest_season;") + echo "* "$title" ("$latest_season"x"$latest_episode")" + done > tv_shows.md + + echo "Created tv_shows.md ($episode_count episodes)" + fi ''; in { environment.systemPackages = [ watchedlist ];