On Mon, 23 Jul 2018 14:09:13 -0400, Ken Hornstein said:
On Mon, 23 Jul 2018 09:17:45 -0400, Ken Hornstein said:
DATE_FMT="%Y-%m-%d %T +0000"
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +s)}"
date=$(TZ=GMT0 date --date="@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null
||
date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u
"+$DATE_FMT")
I doubt that's right - at least on Fedora, /usr/bin/date doesn't work that
way....
Um, isn't /usr/bin/date on Fedora GNU date? If so, shouldn't the --date
option work?
Well, first off - last I heard we support nmh on more than just Linux.
Also, the "date +s" and the "date -u -r" don't do what you think they do...
16:24:10 1 [~] set -v
16:24:22 0 [~] set -x
set -x
16:24:27 0 [~] DATE_FMT="%Y-%m-%d %T +0000"
DATE_FMT="%Y-%m-%d %T +0000"
+ DATE_FMT='%Y-%m-%d %T +0000'
16:24:35 0 [~] SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +s)}"
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +s)}"
++ date +s Not set, so we take the replacement
value...
+ SOURCE_DATE_EPOCH=s *** probably not what we intended
16:24:44 0 [~] date=$(TZ=GMT0 date --date="@$SOURCE_DATE_EPOCH" "+$DATE_FMT"
2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date
-u "+$DATE_FMT")
date=$(TZ=GMT0 date --date="@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null ||
date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u
"+$DATE_FMT")
++ TZ=GMT0
++ date --date=@s '+%Y-%m-%d %T +0000' (This dies because --date=@s is
bogus
++ date -u -r s '+%Y-%m-%d %T +0000' (This dies because '-r s' is
bogus as there's no file 's' to snarf a timestamp from
++ date -u '+%Y-%m-%d %T +0000' And we end up in the last case,
which works.
+ date='2018-07-23 20:25:04 +0000'
Now, this may magically work if $SOURCE_DATE_EPOCH is set to something
sane before we enter this code - but if it isn't set, it only happens to work
Aha. Found it. In the debian.org link:
BUILD_DATE="$(date --utc --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y-%m-%d)"
date +%s
16:32:25 123 [~/src/nmh] date +%s
1532378290
6:38:59 0 [~] DATE_FMT="%Y-%m-%d %T +0000"
DATE_FMT="%Y-%m-%d %T +0000"
+ DATE_FMT='%Y-%m-%d %T +0000'
16:39:05 0 [~] SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}"
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}"
++ date +%s
+ SOURCE_DATE_EPOCH=1532378360
16:39:20 0 [~] date=$(TZ=GMT0 date --date="@$SOURCE_DATE_EPOCH" "+$DATE_FMT"
2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date
-u "+$DATE_FMT")
date=$(TZ=GMT0 date --date="@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null ||
date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u
"+$DATE_FMT")
++ TZ=GMT0
++ date --date=@1532378360 '+%Y-%m-%d %T +0000'
+ date='2018-07-23 20:39:20 +0000'
That %s matters. A lot.
I'm assuming that the BSD 'date' takes -r as a timestamp rather than a
filename. Somebody
on a BSD system will need to check that.
pgpQ2nsVvTook.pgp
Description: PGP signature
--
nmh-workers
https://lists.nongnu.org/mailman/listinfo/nmh-workers