]> Sergey Matveev's repositories - nnn.git/commitdiff
Create quitcd script for nushell
authorHenri Bourcereau <henri.bourcereau@gmail.com>
Tue, 28 Feb 2023 15:26:36 +0000 (16:26 +0100)
committerGitHub <noreply@github.com>
Tue, 28 Feb 2023 15:26:36 +0000 (16:26 +0100)
misc/quitcd/quitcd.nu [new file with mode: 0644]

diff --git a/misc/quitcd/quitcd.nu b/misc/quitcd/quitcd.nu
new file mode 100644 (file)
index 0000000..f291e5a
--- /dev/null
@@ -0,0 +1,18 @@
+# The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set)
+let cfgHome = ($env | default $env.HOME XDG_CONFIG_HOME | get XDG_CONFIG_HOME)
+let-env NNN_TMPFILE = $"($cfgHome)/.config/nnn/.lastd"
+
+def-env n [...x] {
+  # Launch nnn. Add desired flags after `^nnn`, ex: `^nnn -eda ($x | str join)`
+  ^nnn ($x | str join)
+  let newpath = (
+    if ($env.NNN_TMPFILE | path exists) {
+      let newpath = (open $env.NNN_TMPFILE | parse 'cd "{nnnpath}"').0.nnnpath
+      ^rm -f $env.NNN_TMPFILE
+      echo $newpath
+    } else {
+      pwd
+    }
+  )
+  cd $newpath
+}