about summary refs log blame commit diff stats
path: root/update_common_files.sh
blob: d204c173721fcf3b4b56ccf904782802958d0c0a (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                 
                                       
                                             
                                                   
 

                                                                                
                                    
                                   
                                                                                                  
                                            
                                        

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