watchedlist.nix (1106B)
1 { pkgs, ... }: 2 3 let 4 watchedlist = pkgs.writeShellScriptBin "watchedlist" '' 5 # variables 6 if [ -z "$1" ] 7 then 8 database="watchedlist.db" 9 else 10 database="$1" 11 fi 12 # checks 13 if [ ! -f "$database" ] 14 then 15 echo Database "$database" file missing, exiting 16 exit 0 17 fi 18 # TODO: blank database check 19 # movies 20 sqlite3 -noheader -quote "$database" "SELECT title FROM movie_watched" | sed "s/^'//;s/'$//" | sed 's/^/* /' > movies.md 21 # tv shows 22 watched_ids=$(sqlite3 -noheader "$database" "SELECT DISTINCT idShow FROM episode_watched;") 23 for id in $watched_ids; do 24 title=$(sqlite3 -noheader -quote "$database" "SELECT title FROM tvshows WHERE idShow = $id;") 25 title=''${title//\"/} 26 title=''${title//\'/} 27 latest_season=$(sqlite3 -noheader "$database" "SELECT MAX(season) FROM episode_watched WHERE idShow = $id;") 28 latest_episode=$(sqlite3 -noheader "$database" "SELECT MAX(episode) FROM episode_watched WHERE idShow = $id AND season = $latest_season;") 29 echo "* "$title" ("$latest_season"x"$latest_episode")" 30 done > tv_shows.md 31 ''; 32 in { 33 environment.systemPackages = [ watchedlist ]; 34 }