чување b11e0523ee070ac339d1d4260a72e893c339dd37
родитељ e91d7d02cf91a38a8c5f4e1b5d45950fb071d3bb
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Thu, 17 Aug 2023 12:15:31 +0200
Avoid stat in redo scripts; clean.do: Add version.h; default.h.do: Remove file;
slw2gmi.c: Add date to version output
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
измењених датотека: 5, додавања: 16(+), брисања: 22(-)
diff --git a/clean.do b/clean.do
@@ -1,2 +1,2 @@
redo-always
-rm -f slw2gmi slw2gmi.1 slw2gmi.1.gz *.o *~ version date *.pdf
+rm -f slw2gmi slw2gmi.1 slw2gmi.1.gz *.o *~ version.h version date *.pdf
diff --git a/date.do b/date.do
@@ -1,13 +1,16 @@
FALLBACKDATE=${FALLBACKDATE:-unknown}
-user=$(stat -c %U .)
-e_user=$(id -un)
+user=$(unalias ls >/dev/null 2>&1 || true; \
+ LC_ALL=C command ls -nd . | LC_ALL=C awk '{print $3}')
+e_user=$(id -u)
+user_s=$(LC_ALL=C awk 'BEGIN{FS=":"}{if ($3=="'$user'") { print $1}}' \
+ </etc/passwd)
if [ -d .git ] && command -v git >/dev/null 2>&1; then
if [ "$e_user" = "$user" ]; then
env LC_ALL=C git log --format=format:%cd \
- --date=format:"%d %b %Y" -1 @ >$3
+ --date=format:"%B %d, %Y" -1 @ >$3
else
- su "${user}" -c 'env LC_ALL=C git log --format=format:%cd '\
-'--date=format:"%d %b %Y" -1 @' >$3
+ su "${user_s}" -c 'env LC_ALL=C git log --format=format:%cd '\
+'--date=format:"%B %d, %Y" -1 @' >$3
fi
echo >>$3
else
diff --git a/default.h.do b/default.h.do
@@ -1,12 +0,0 @@
-if [ -r $1.in ]; then
- redo-ifchange $1.in version date
- read VERSION <version
- read DATE <date
- sed -e "s/%VERSION%/$VERSION/g" \
- -e "s/%DATE%/$DATE/g" <$1.in
-else
- if [ -f $2.def.h ]; then
- redo-ifchange $2.def.h
- cat $2.def.h > $3
- fi
-fi
diff --git a/slw2gmi.c b/slw2gmi.c
@@ -97,7 +97,7 @@ static int incdir_only_summary = 0;
int
version()
{
- printf("%s %s\n", PROGRAMNAME, VERSION);
+ printf("%s %s, committed on %s\n", PROGRAMNAME, VERSION, DATE);
return 0;
}
diff --git a/version.do b/version.do
@@ -1,11 +1,14 @@
FALLBACKVER=${FALLBACKVER:-unknown}
-user=$(stat -c %U .)
-e_user=$(id -un)
+user=$(unalias ls >/dev/null 2>&1 || true; \
+ LC_ALL=C command ls -nd . | LC_ALL=C awk '{print $3}')
+e_user=$(id -u)
+user_s=$(LC_ALL=C awk 'BEGIN{FS=":"}{if ($3=="'$user'") { print $1}}' \
+ </etc/passwd)
if [ -d .git ] && command -v git >/dev/null 2>&1; then
if [ "$e_user" = "$user" ]; then
git describe 2>/dev/null | sed 's/^v//' >$3
else
- su "${user}" -c 'git describe' 2>/dev/null | sed 's/^v//' >$3
+ su "${user_s}" -c 'git describe' 2>/dev/null | sed 's/^v//' >$3
fi
else
echo $FALLBACKVER >$3