slweb

Једноставни генератор статичких веб страна
git clone https://git.sr.ht/~strahinja/slweb
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување c837b4b587cf5709575255aa274519ba59ea9ac6
родитељ a4566dec6fb9de5adf1820224b7d36e79a89997c
Аутор: Страхиња Радић <sr@strahinja.org>
Датум:   Mon,  2 Feb 2026 22:50:42 +0100

lib/make{date,version}: Provide fallback for systems without getent

Diffstat:
Mlib/makedate | 20+++++++++++++++++++-
Mlib/makeversion | 20+++++++++++++++++++-
измењених датотека: 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