bool

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

чување a2575adea85cf2ad189e5980747a76f24aa67e09
родитељ b957defe1b0c71b16b0be0c62d37a6a40e9c9620
Аутор: Страхиња Радић <sr@strahinja.org>
Датум:   Sat, 21 Mar 2026 16:32:31 +0000

lib/make{date,version}: Fix build scripts on HaikuOS

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