blog-music.nix (2178B)
1 { 2 pkgs, 3 domain, 4 ... 5 }: let 6 blog-music = pkgs.writeShellScriptBin "blog-music" '' 7 # variables 8 post="$HOME/vault/src/blog.${domain}/content/music.md" 9 header="$(grep -v \| "$post")" 10 # functions 11 function lastmod { 12 echo -n "Amending lastmod value... " 13 mod_timestamp="$(date +%FT%H:%M:00)" 14 sed -i "s/lastmod: .*/lastmod: $mod_timestamp/g" "$1" 15 echo -e "$i \e[32mdone\e[39m" 16 } 17 echo -n "Checking for $(basename "$post")..." 18 if test -f "$post"; then 19 echo -e "$i \e[32mexists\e[39m" 20 else 21 echo -e "$i \e[31mdoes not exist\e[39m. Exiting" 22 exit 1 23 fi 24 source=liked.csv 25 echo -n "Checking for $source..." 26 if test -f "$source"; then 27 echo -e "$i \e[32mexists\e[39m" 28 else 29 echo -e "$i \e[31mdoes not exist\e[39m. Exiting" 30 exit 1 31 fi 32 echo -n "Processing $source... " 33 tail -n +2 <"$source" | 34 awk -F'\",\"' '{print $4}' | 35 sed 's/\\\,/,/g' >temp.artists.log 36 tail -n +2 <"$source" | 37 awk -F'\",\"' '{print $2}' | 38 sed 's/ - .... - Remaster$//g' | 39 sed 's/ - .... Remaster$//g' | 40 sed 's/ - .... Remastered Edition$//g' | 41 sed 's/ - .... re-mastered version$//g' | 42 sed 's/ - .... Remastered Version$//g' | 43 sed 's/ - feat.*$//g' | 44 sed 's/ - Live$//g' | 45 sed 's/ - Original Mix$//g' | 46 sed 's/ - Remaster$//g' | 47 sed 's/ - Remastered ....$//g' | 48 sed 's/ - Remastered$//g' | 49 sed 's/ - Remastered Version$//g' | 50 sed 's/ (.... Remaster)$//g' | 51 sed 's/ (feat.*)$//g' | 52 sed 's/ (Live)//g' | 53 sed 's/\[[^][]*\]//g' | 54 awk '{print "["$0"]"}' >temp.tracks.log 55 tail -n +2 <"$source" | 56 awk -F'\"' '{print $2}' | 57 awk '{print "("$0")"}' >temp.links.log 58 echo -e "\e[32mdone\e[39m" 59 # write page 60 echo -n "Writing page... " 61 { 62 printf "%s\n\n" "$header" 63 printf "%s" "$(paste temp.artists.log temp.tracks.log temp.links.log | sed 's/\t/ \| /g' | sed 's/^/\| /g' | sed 's/$/ \|/g' | sed 's/\] | (/\](/g')" | sort | uniq -i | sed -e '1i\| ------ \| ----- \|' | sed -e '1i\| Artist \| Title \|' 64 } >"$post" 65 echo -e "\e[32mdone\e[39m" 66 lastmod "$post" 67 echo -n "Deleting temporary files... " 68 rm temp.{artists,tracks,links}.log 69 echo -e "\e[32mdone\e[39m" 70 71 ''; 72 in { 73 environment.systemPackages = [blog-music]; 74 }