чување c837b4b587cf5709575255aa274519ba59ea9ac6
родитељ a4566dec6fb9de5adf1820224b7d36e79a89997c
Аутор: Страхиња Радић <sr@strahinja.org>
Датум: Mon, 2 Feb 2026 22:50:42 +0100
lib/make{date,version}: Provide fallback for systems without getent
Diffstat:
измењених датотека: 2, додавања: 38(+), брисања: 2(-)
diff --git a/lib/makedate b/lib/makedate
@@ -4,6 +4,24 @@ FALLBACKDATE=${FALLBACKDATE:-unknown}
LC_ALL=C
export LC_ALL
+getent()
+{
+ if command -v getent >/dev/null 2>&1; then
+ command getent "$@"
+ return
+ fi
+ case "$1" in
+ passwd|group)
+ if [ -z "$2" ]; then
+ cat /etc/"$1"
+ else
+ awk -F: -vu="$2" '{ if ($3 == u) print }' /etc/"$1"
+ fi
+ ;;
+ *) ;;
+ esac
+}
+
if [ -d .got ] && command -v got >/dev/null 2>&1; then
got log |
awk '
@@ -27,7 +45,7 @@ if [ -d .got ] && command -v got >/dev/null 2>&1; then
}' >date.new
elif [ -d .git ] && command -v git >/dev/null 2>&1; then
user=$(getent passwd "$(unalias ls >/dev/null 2>&1 || true; \
- command ls -lnd . | awk '{print $3}')" | awk -F: '{print $1}')
+ 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
@@ -2,6 +2,24 @@
# vim: set ft=bash:
FALLBACKVER=${FALLBACKVER:-unknown}
+getent()
+{
+ if command -v getent >/dev/null 2>&1; then
+ command getent "$@"
+ return
+ fi
+ case "$1" in
+ passwd|group)
+ if [ -z "$2" ]; then
+ cat /etc/"$1"
+ else
+ awk -F: -vu="$2" '{ if ($3 == u) print }' /etc/"$1"
+ fi
+ ;;
+ *) ;;
+ esac
+}
+
if [ -d .got ] && command -v got >/dev/null 2>&1; then
lastcommit=$(got log |
awk '/^commit/ {print substr($2,1,7); exit}')
@@ -34,7 +52,7 @@ elif [ -d .git ] && command -v git >/dev/null 2>&1; then
LC_ALL=C
export LC_ALL
user=$(getent passwd "$(unalias ls >/dev/null 2>&1 || true; \
- command ls -lnd . | awk '{print $3}')" | awk -F: '{print $1}')
+ 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