From 7de3287d7f566fa2323ae01ac5d4792295c40c6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chlo=C3=A9=20Vulquin?= Date: Mon, 19 Jan 2026 18:43:41 +0100 Subject: zsh: change implementation of tt In zsh, an EXIT trap defined in a function runs on that function's execution end. Unfortunately, that's not what I want! Instead, there's the zsh hook zshexit, but that takes a function. This changes tt to add the generated directories to a deduplicated array, which is cleaned up on exit, as long as the function has been loaded. --- dot_config/zsh/functions/tt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 dot_config/zsh/functions/tt (limited to 'dot_config/zsh/functions/tt') diff --git a/dot_config/zsh/functions/tt b/dot_config/zsh/functions/tt new file mode 100644 index 0000000..0328e71 --- /dev/null +++ b/dot_config/zsh/functions/tt @@ -0,0 +1,15 @@ +# vim: ft=zsh +typeset -gaU __tt_exit_dirs +__tt_exit() { + (( ${+__tt_exit_dirs[1]} )) && rm -r "${__tt_exit_dirs[@]}" +} +autoload -Uz add-zsh-hook +add-zsh-hook zshexit __tt_exit +tt() { + local dir=$(mktemp -d) + [ -d "$dir" ] || return 1 + cd "$dir" + __tt_exit_dirs+=("$dir") +} + +tt "$@" -- cgit v1.2.3