чување 8b25384116d7e4667b7a07bc80639bc2a2b02ef8
родитељ bf11072a011350ec55d244bee7fd3946af474794
Аутор: Страхиња Радић <sr@strahinja.org>
Датум: Tue, 17 Mar 2026 11:58:17 +0100
lib/make{date,version}: Add die,exists; test for presence of diff(1)
Diffstat:
измењених датотека: 2, додавања: 34(+), брисања: 8(-)
diff --git a/lib/makedate b/lib/makedate
@@ -4,9 +4,20 @@ FALLBACKDATE=${FALLBACKDATE:-unknown}
LC_ALL=C
export LC_ALL
+die()
+{
+ printf "%s\n" "$@" >&2
+ exit 1
+}
+
+exists()
+{
+ command -v $* >/dev/null 2>&1
+}
+
getent()
{
- if command -v getent >/dev/null 2>&1; then
+ if exists getent; then
command getent "$@"
return
fi
@@ -22,7 +33,9 @@ getent()
esac
}
-if [ -d .got ] && command -v got >/dev/null 2>&1; then
+exists diff || die "The build script $0 requires diff(1), none found"
+
+if [ -d .got ] && exists got; then
got log |
awk '
/^date: / {
@@ -43,7 +56,7 @@ if [ -d .got ] && command -v got >/dev/null 2>&1; then
print month_names[$2] " " $3 ", " $5
exit
}' >date.new
-elif [ -d .git ] && command -v git >/dev/null 2>&1; then
+elif [ -d .git ] && exists git; then
user=$(getent passwd "$(unalias ls >/dev/null 2>&1 || true; \
command ls -nd . | awk '{print $3}')" | awk -F: '{print $1}')
if [ -z "$user" ]; then
diff --git a/lib/makeversion b/lib/makeversion
@@ -1,10 +1,23 @@
#!/bin/sh -x
# vim: set ft=bash:
FALLBACKVER=${FALLBACKVER:-unknown}
+LC_ALL=C
+export LC_ALL
+
+die()
+{
+ printf "%s\n" "$@" >&2
+ exit 1
+}
+
+exists()
+{
+ command -v $* >/dev/null 2>&1
+}
getent()
{
- if command -v getent >/dev/null 2>&1; then
+ if exists getent; then
command getent "$@"
return
fi
@@ -20,7 +33,9 @@ getent()
esac
}
-if [ -d .got ] && command -v got >/dev/null 2>&1; then
+exists diff || die "The build script $0 requires diff(1), none found"
+
+if [ -d .got ] && exists got; then
lastcommit=$(got log |
awk '/^commit/ {print substr($2,1,7); exit}')
got tag -l |
@@ -48,9 +63,7 @@ if [ -d .got ] && command -v got >/dev/null 2>&1; then
}
printf "\n"
}' >version.new
-elif [ -d .git ] && command -v git >/dev/null 2>&1; then
- LC_ALL=C
- export LC_ALL
+elif [ -d .git ] && exists git; then
user=$(getent passwd "$(unalias ls >/dev/null 2>&1 || true; \
command ls -nd . | awk '{print $3}')" | awk -F: '{print $1}')
if [ -z "$user" ]; then