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.
