#!/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