GNU bug report logs -
#15425
mktemp - conflicting options affected by ENV
Previous Next
Full log
Message #11 received at 15425 <at> debbugs.gnu.org (full text, mbox):
On 09/21/2013 01:14 AM, Pádraig Brady wrote:
> 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.
I also see the --help says that -p implies -t
AFAICS -t in the context of -p just means to interpret template as a single file without dirs,
however the example below shows that -t is not in fact implied with -p
$ mktemp -u -p dir1 dir2/XXXXXX
dir1/dir2/qQBdsf
$ mktemp -u -t -p dir1 dir2/XXXXXX
src/mktemp: invalid template, ‘dir2/XXXXXX’, contains directory separator
So rather than adjusting any functionality of these deprecated options,
I'll just remove the --help text saying that -t is implied.
thanks,
Pádraig.
This bug report was last modified 11 years and 227 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.