Add a diff option to copy-nixos-config.
This commit is contained in:
parent
e7dec0492b
commit
a62d8b4164
|
@ -2,6 +2,6 @@
|
||||||
|
|
||||||
deno run \
|
deno run \
|
||||||
--allow-read \
|
--allow-read \
|
||||||
--allow-run="hostname,sudo" \
|
--allow-run="delta,hostname,sudo" \
|
||||||
"$BAUKE_DIR/scripts/copy-nixos-config.ts" \
|
"$BAUKE_DIR/scripts/copy-nixos-config.ts" \
|
||||||
"$@"
|
"$@"
|
||||||
|
|
|
@ -10,6 +10,7 @@ async function main(): Promise<void> {
|
||||||
.option("--hostname", "The machine's configuration to copy.", {
|
.option("--hostname", "The machine's configuration to copy.", {
|
||||||
default: (await runAndReturnStdout({ cmd: ["hostname"] })).trim(),
|
default: (await runAndReturnStdout({ cmd: ["hostname"] })).trim(),
|
||||||
})
|
})
|
||||||
|
.option("--diff", 'Output diffs between local and "/etc/nixos/" files.')
|
||||||
.parse(Deno.args);
|
.parse(Deno.args);
|
||||||
|
|
||||||
const sourceDir = new URL(`../nix/${options.hostname}/`, import.meta.url);
|
const sourceDir = new URL(`../nix/${options.hostname}/`, import.meta.url);
|
||||||
|
@ -17,6 +18,17 @@ async function main(): Promise<void> {
|
||||||
.filter((entry) => entry.name.endsWith(".nix"))
|
.filter((entry) => entry.name.endsWith(".nix"))
|
||||||
.map((entry) => sourceDir.pathname + entry.name);
|
.map((entry) => sourceDir.pathname + entry.name);
|
||||||
|
|
||||||
|
if (options.diff) {
|
||||||
|
for (const file of files) {
|
||||||
|
const filename = file.slice(file.lastIndexOf("/") + 1);
|
||||||
|
await Deno.run({
|
||||||
|
cmd: ["delta", `/etc/nixos/${filename}`, file],
|
||||||
|
}).status();
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
await Deno.run({
|
await Deno.run({
|
||||||
cmd: [
|
cmd: [
|
||||||
"sudo",
|
"sudo",
|
||||||
|
|
Loading…
Reference in New Issue