nix-configs

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

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 }