bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#15425: mktemp - conflicting options affected by ENV


From: Pádraig Brady
Subject: bug#15425: mktemp - conflicting options affected by ENV
Date: Sat, 21 Sep 2013 01:14:23 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2

On 09/20/2013 05:50 PM, Assaf Gordon wrote:
> Hello,
> 
> Not sure if this is a bug or just unintended side-effect, but it caused some 
> scripts here to fail and took a while to troubleshoot:
> It basically boils down to the interplay between the deprecated "-t" "-p" and 
> "$TMPDIR" and "--tmpdir".
> 
> ===
> ##
> ## Problem 1: "-t" and TMPDIR (if non-empty) overrides "--tmpdir"
> ##
> $ TMPDIR= mktemp -u --tmpdir=. -t XXXXXX
> ./og9G5s
> $ TMPDIR=/foo/ mktemp -u --tmpdir=. -t XXXXXX
> /foo/AAWcOl

Yes this is confusing, and _not_ order dependent:

$ TMPDIR=/foo/ mktemp -t -u --tmpdir=. XXXXXX
/foo/AAWcOl

> 
> ##
> ## Problem 2: if TMPDIR is empty, "--tmpdir" overrides "-p", despite having 
> "-t"
> ##
> $ TMPDIR=/foo/ mktemp -u -p /bar/ --tmpdir=. -t XXXXXX
> /foo/tHXcrq
> $ TMPDIR= mktemp -u -p /bar/ --tmpdir=. -t XXXXXX
> ./OfWXSS
> ## I'd expect the above to use "/bar/OfWXSS", to be consistent with TMPDIR 
> overriding "--tmpdir".
> ===

Also confusing, and order dependent too:

$ mktemp -p /aaa -u --tmpdir=. asdf/XXXX
./asdf/wdIT
$ mktemp -u --tmpdir=. -p /aaa asdf/XXXX
/aaa/asdf/3Jc7

> I realize "-t" and "-p" are deprecated, and it's best not to meddle with them 
> -
> but for consistency, perhaps consider having the new "--tmpdir" always take 
> precedence over "-t" and "-p" ?
> or print a warning to STDERR when "-t" and "--tmpdir" are mixed?

Yes I agree that --tmpdir should override -pt no matter what the order.
In fact there is no reason to use -pt with --tmpdir and since the former
are deprecated, I suggest we just disallow that combination with an error.

Patch coming up.

thanks!
Pádraig.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]