X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=.zsh%2Fzshrc%2F39_tempfuncs;h=173dffb3da6d78f4eeda71a2408f0588b3099868;hb=HEAD;hp=506f0010d2bdcbe2aa6eaf743f6de288ea9ad317;hpb=e7aef48f33e934106d1a50201d9f098f9886d7ec;p=zsh.git diff --git a/.zsh/zshrc/39_tempfuncs b/.zsh/zshrc/39_tempfuncs index 506f001..173dffb 100644 --- a/.zsh/zshrc/39_tempfuncs +++ b/.zsh/zshrc/39_tempfuncs @@ -1,3 +1,4 @@ +# -*- mode: sh -*- # zshrc/40_tempfuncs # # Helper functions to create temporary files and directories @@ -9,15 +10,33 @@ # cdt () { - builtin cd $(mktemp -td cdt.XXXXXXXX) + local tmpdir + tmpdir=$(mktemp -td ${1:-cdt}.XXXXXX) + builtin cd $tmpdir pwd + rm -f ${TMPDIR:-/tmp}/cdt.latest + ln -s $tmpdir ${TMPDIR:-/tmp}/cdt.latest } vit () { - local tmpfile=$(mktemp -t vit.XXXXXXXX) - [ "$1" = '-' ] && cat >| $tmpfile + local prefix + for i in "$@"; do + case "$i" in + -) local stdin=1; shift;; + *) if [ -z "${prefix:-}" ]; then + prefix="$i"; shift + else + error "prefix already specified: $prefix" + return 1 + fi + ;; + esac + done + local tmpfile=$(mktemp -t ${prefix:-vit}.XXXXXX) + [ -n "$stdin" ] && cat >| $tmpfile sensible-editor $tmpfile /dev/tty echo $tmpfile + ln -sf $tmpfile ${TMPDIR:-/tmp}/vit.latest } # vim:ft=zsh