From 3baef660cf8b87391d475a0455dd66fae0e60008 Mon Sep 17 00:00:00 2001 From: technofab Date: Tue, 2 Sep 2025 09:20:58 +0200 Subject: [PATCH] chore(lib): add "auto generated" comment to nix generator outputs fix copy not being able to overwrite generated files due to them being read only (r--r--r--) by removing them first --- lib/lib.nix | 20 +++++++++++++++++++- lib/module.nix | 2 ++ 2 files changed, 21 insertions(+), 1 deletion(-) 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