about summary refs log tree commit diff stats
path: root/pkgs/by-name/ll
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xpkgs/by-name/ll/ll/ll.sh8
-rwxr-xr-xpkgs/by-name/ll/lm/lm.sh12
-rw-r--r--pkgs/by-name/ll/lm/package.nix9
3 files changed, 27 insertions, 2 deletions
diff --git a/pkgs/by-name/ll/ll/ll.sh b/pkgs/by-name/ll/ll/ll.sh
index f689ba44..9bec7eaf 100755
--- a/pkgs/by-name/ll/ll/ll.sh
+++ b/pkgs/by-name/ll/ll/ll.sh
@@ -8,7 +8,11 @@ last_directory="$(mktemp)"
 command lf -last-dir-path="$last_directory" "$@"
 
 dir="$(cat "$last_directory")"
-cd "$dir" || die "$dir does not exist!"
-rm "$last_directory"
+if cd "$dir"; then
+    echo "$dir" >"$XDG_RUNTIME_DIR/ll/last_directory"
+else
+    die "$dir does not exist!"
+fi
 
+rm "$last_directory"
 # vim: ft=sh
diff --git a/pkgs/by-name/ll/lm/lm.sh b/pkgs/by-name/ll/lm/lm.sh
new file mode 100755
index 00000000..55be0798
--- /dev/null
+++ b/pkgs/by-name/ll/lm/lm.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH
+
+if [ -f "$XDG_RUNTIME_DIR/ll/last_directory" ]; then
+    last_dir="$(cat "$XDG_RUNTIME_DIR/ll/last_directory")"
+    cd "$last_dir" || die "$last_dir does not exist!"
+else
+    msg "No last directory safed (try using ll instead)."
+fi
+# vim: ft=sh
diff --git a/pkgs/by-name/ll/lm/package.nix b/pkgs/by-name/ll/lm/package.nix
new file mode 100644
index 00000000..ef417cd2
--- /dev/null
+++ b/pkgs/by-name/ll/lm/package.nix
@@ -0,0 +1,9 @@
+{sysLib}:
+sysLib.writeShellScript {
+  name = "lm";
+  src = ./lm.sh;
+  generateCompletions = false;
+
+  # `ll` must be able to change the path of the running shell.
+  wrap = false;
+}