чување a2575adea85cf2ad189e5980747a76f24aa67e09
родитељ b957defe1b0c71b16b0be0c62d37a6a40e9c9620
Аутор: Страхиња Радић <sr@strahinja.org>
Датум: Sat, 21 Mar 2026 16:32:31 +0000
lib/make{date,version}: Fix build scripts on HaikuOS
Diffstat:
измењених датотека: 2, додавања: 52(+), брисања: 22(-)
diff --git a/lib/makedate b/lib/makedate
@@ -4,25 +4,38 @@ FALLBACKDATE=${FALLBACKDATE:-unknown}
LC_ALL=C
export LC_ALL
-getent()
+die()
{
- geresult=''
- if geresult=$(command getent "$@" 2>/dev/null); then
+ printf "%s\n" "$@" >&2
+ exit 1
+}
+
+exists()
+{
+ command -v $* >/dev/null 2>&1
+}
+
+_getent()
+{
+ if exists getent; then
+ command getent "$@" 2>/dev/null
return
fi
case "$1" in
passwd|group)
if [ -z "$2" ]; then
- geresult=$(cat /etc/"$1")
+ cat /etc/"$1"
else
- geresult=$(awk -F: -vu="$2" '{ if ($3 == u) print }' /etc/"$1")
+ awk -F: -vu="$2" '{ if ($3 == u) print }' /etc/"$1"
fi
;;
*) ;;
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,10 +56,12 @@ 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
- getent passwd "$(unalias ls >/dev/null 2>&1 || true; \
- command ls -nd . | awk '{print $3}')"
- user=$(printf "%s\n" "$geresult" | awk -F: '{print $1}')
+elif [ -d .git ] && exists git; then
+
+ user=$(printf "%s\n" "$(_getent passwd \
+ "$(unalias ls >/dev/null 2>&1 || true; \
+ command ls -nd . | awk '{print $3}')")" |
+ awk -F: '{print $1}')
if [ -z "$user" ]; then
printf "$0: error: Cannot determine owner of %s" "$(pwd)" >&2
exit 1
diff --git a/lib/makeversion b/lib/makeversion
@@ -1,26 +1,41 @@
#!/bin/sh -x
# vim: set ft=bash:
FALLBACKVER=${FALLBACKVER:-unknown}
+LC_ALL=C
+export LC_ALL
-getent()
+die()
{
- geresult=''
- if geresult=$(command getent "$@" 2>/dev/null); then
+ printf "%s\n" "$@" >&2
+ exit 1
+}
+
+exists()
+{
+ command -v $* >/dev/null 2>&1
+}
+
+_getent()
+{
+ if exists getent; then
+ command getent "$@" 2>/dev/null
return
fi
case "$1" in
passwd|group)
if [ -z "$2" ]; then
- geresult=$(cat /etc/"$1")
+ cat /etc/"$1"
else
- geresult=$(awk -F: -vu="$2" '{ if ($3 == u) print }' /etc/"$1")
+ awk -F: -vu="$2" '{ if ($3 == u) print }' /etc/"$1"
fi
;;
*) ;;
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,12 +63,12 @@ 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
- getent passwd "$(unalias ls >/dev/null 2>&1 || true; \
- command ls -nd . | awk '{print $3}')"
- user=$(printf "%s\n" "$geresult" | awk -F: '{print $1}')
+elif [ -d .git ] && exists git; then
+
+ user=$(printf "%s\n" "$(_getent passwd \
+ "$(unalias ls >/dev/null 2>&1 || true; \
+ command ls -nd . | awk '{print $3}')")" |
+ awk -F: '{print $1}')
if [ -z "$user" ]; then
printf "$0: error: Cannot determine owner of %s" "$(pwd)" >&2
exit 1