#!/usr/bin/env sh

ROOT="$(git rev-parse --show-toplevel)"

# This results in fd returning relative paths
cd "$ROOT/common/files" || echo "BUG, no root dir!"

file_spec="$(nix eval --file "$ROOT/common/default.nix" --json)"

echo "$file_spec" | jq --raw-output 'keys | join("\n")' | while read -r file; do
    [ -n "$first_run_done" ] && echo
    echo "Instantiating '$file'..."

    echo "$file_spec" | jq --raw-output ".[\"$file\"] | join(\"\n\")" | while read -r language; do
        template="$ROOT/templates/$language";
        echo "    done for '$language'."

         mkdir --parents "$(dirname "$template/$file")"
         rm "$template/$file"
         cp "$file" "$template/$file"
    done


    first_run_done=yes
done

# vim: ft=sh