blog-sort-quotes.nix (999B)
1 { 2 pkgs, 3 domain, 4 ... 5 }: let 6 blog-sort-quotes = pkgs.writeShellScriptBin "blog-sort-quotes" '' 7 # variables 8 quote_file="$HOME/vault/src/blog.${domain}/content/quotes.md" 9 file_header="$(head -n 7 "$quote_file")" 10 file_body="$(tail -n +7 "$quote_file" | sort | uniq -i | sed G)" 11 # functions 12 function lastmod { 13 echo -n "Amending lastmod value... " 14 mod_timestamp="$(date +%FT%H:%M:00)" 15 sed -i "s/lastmod: .*/lastmod: $mod_timestamp/g" "$1" 16 echo -e "$i \e[32mdone\e[39m" 17 } 18 echo -n "Processing $(basename "$quote_file")... " 19 shasum_original="$(sha512sum "$quote_file" | awk '{print $1}')" 20 { 21 printf "%s\n" "$file_header" 22 printf "%s" "$file_body" 23 } >"$quote_file" 24 shasum_modified="$(sha512sum "$quote_file" | awk '{print $1}')" 25 if [[ "$shasum_original" != "$shasum_modified" ]]; then 26 lastmod "$i" 1>/dev/null 27 echo -e "\e[32mmodified\e[39m" 28 else 29 echo -e "\e[33munmodified\e[39m" 30 fi 31 ''; 32 in { 33 environment.systemPackages = [blog-sort-quotes]; 34 }