From 408bfa2fa060dd0efe8296be8d03db9d6d848e51 Mon Sep 17 00:00:00 2001 From: amtoine Date: Sun, 2 Jun 2024 13:10:33 +0200 Subject: [PATCH 1/4] add "gitattributes" to set NUON filetype --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..c297fd9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.nuon diff=nuon From e966bbb38b93d920af6da5ebcb17606484b0d45b Mon Sep 17 00:00:00 2001 From: amtoine Date: Sun, 2 Jun 2024 13:15:27 +0200 Subject: [PATCH 2/4] add a script to print NUON --- scripts/print-nuon.nu | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 scripts/print-nuon.nu diff --git a/scripts/print-nuon.nu b/scripts/print-nuon.nu new file mode 100755 index 0000000..84c5d42 --- /dev/null +++ b/scripts/print-nuon.nu @@ -0,0 +1,31 @@ +#!/usr/bin/env nu + +def main [file: path]: [ nothing -> string ] { + if not ($file | path exists) { + error make { + msg: $"(ansi red_bold)file_not_found(ansi reset)", + label: { + text: "no such file", + span: (metadata $file).span, + }, + help: $"`($file)` does not exist", + } + } + + let content = open --raw $file + + let data = try { + $content | from nuon + } catch { + error make { + msg: $"(ansi red_bold)invalid_nuon(ansi reset)", + label: { + text: "could not parse NUON", + span: (metadata $file).span, + }, + help: $"`($file)` does not appear to be valid NUON", + } + } + + $data | to nuon -i 4 +} From 8014fe695fc7fdcd5b1e0e29b640cd420d870ba4 Mon Sep 17 00:00:00 2001 From: amtoine Date: Sun, 2 Jun 2024 13:17:18 +0200 Subject: [PATCH 3/4] add `set-nuon-diff` to the toolkit --- toolkit.nu | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/toolkit.nu b/toolkit.nu index 0d15bfe..9e8183f 100644 --- a/toolkit.nu +++ b/toolkit.nu @@ -16,3 +16,7 @@ export def print-nupm-env [] { print $'PATH: ($env.PATH?)' print $'NU_LIB_DIRS: ($env.NU_LIB_DIRS?)' } + +export def set-nuon-diff [] { + git config diff.nuon.textconv (pwd | path join scripts print-nuon.nu) +} From 29d0de2e80e96abf90977452d9b59d8a0009a9d4 Mon Sep 17 00:00:00 2001 From: amtoine Date: Sun, 2 Jun 2024 13:17:59 +0200 Subject: [PATCH 4/4] add a line of doc to `set-nuon-diff` --- toolkit.nu | 1 + 1 file changed, 1 insertion(+) diff --git a/toolkit.nu b/toolkit.nu index 9e8183f..82ba21a 100644 --- a/toolkit.nu +++ b/toolkit.nu @@ -17,6 +17,7 @@ export def print-nupm-env [] { print $'NU_LIB_DIRS: ($env.NU_LIB_DIRS?)' } +# turn on pretty diffs for NUON data files export def set-nuon-diff [] { git config diff.nuon.textconv (pwd | path join scripts print-nuon.nu) }