[TxMt] bundle temporary directory
Jay Soffian
jay-txmt at soffian.org
Thu Apr 26 20:14:14 UTC 2007
On Apr 26, 2007, at 3:02 PM, Allan Odgaard wrote:
> Commands should generally use mktemp to create their temporary files.
>
> The added UID or user name is to prevent files from clashing with
> other users, but that’s not a problem when using mktemp. And since
> OS X is primarily a one-user system, keeping temporary files
> categorized by user is IMO not a big priority (TM commands that use
> temporary files SHOULD (though I would like to say MUST) cleanup
> their temporary files).
>
> mktemp will use TMPDIR [1] (if set). So in practice we could set
> TMPDIR in bash_init.sh (granted, this would only be for shell
> commands).
>
> But the only value I see in this is, to better pinpoint bundles
> that do not cleanup after themselves.
>
> [1] Unfortunately some bundles does (IIRC) need to use mktemp with
> an absolute path, those ought to use "${TMPDIR:-/tmp}" for where to
> place the file though (not sure if they do).
Perhaps mine is a bit of an oddball case. For my bundle command, I'm
downloading a file from a wiki via curl, allowing it to be edited in
TextMate, and then published back to the wiki. It's preferable to
have the basename of the URL as the filename so that the TextMate
window title reflects the wiki page name. So that implies a per-user
temporary directory.
Since my bundle doesn't clean up the documents it creates (it's not
clear when would be the appropriate time to delete the file[1]), I
decided to use a fixed temporary directory as opposed to "mktemp -d".
Otherwise the bundle would be polluting[2] /tmp over time with
temporary directories (until /tmp is cleaned up at system reboot).
Anyway, I chose "/tmp/`id -u`/moinedit/<basename of URL>" which works
well-enough.
So that's what precipitated the original message.
j.
[1] doesn't make sense to delete the file when the document is
published since there is still an open TextMate buffer backed by the
file.
More information about the textmate
mailing list