diff --git a/lib/lib.nix b/lib/lib.nix index 5fb4b3b..a1abbff 100644 --- a/lib/lib.nix +++ b/lib/lib.nix @@ -14,8 +14,26 @@ format = opts.format or "json"; formatOpts = builtins.removeAttrs opts ["format"]; formatter = formats.${format} formatOpts; + + autogeneratedMessage = + { + yaml = "# Generated by soonix, DO NOT EDIT"; + toml = "# Generated by soonix, DO NOT EDIT"; + lua = "--- Generated by soonix, DO NOT EDIT"; + xml = ""; + }.${ + format + } or ""; in - formatter.generate name data; + (formatter.generate name data).overrideAttrs (pre: { + buildCommand = + # sh + '' + ${pre.buildCommand} + cp $out tmp + cat <(echo "${autogeneratedMessage}") tmp > $out + ''; + }); string = { name, diff --git a/lib/module.nix b/lib/module.nix index 93e1e41..93a2243 100644 --- a/lib/module.nix +++ b/lib/module.nix @@ -133,6 +133,8 @@ in { if [[ ! -f "${hook.output}" ]] || ! cmp -s "${hook.generatedDerivation}" "${hook.output}"; then _soonix_log "info" "${hookName}" "Copying file: ${hook.generatedDerivation} -> ${hook.output}" mkdir -p "$(dirname "${hook.output}")" + # required since they're read only + rm -f "${hook.output}" cp "${hook.generatedDerivation}" "${hook.output}" _changed=true else