nix-configs

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

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 }