mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-23 22:51:03 +02:00
sys-apps/gentoo-functions: Sync with Gentoo
It's from Gentoo commit 10ff83bf69b6d131b1cec99c3a9144546a0dfd20.
This commit is contained in:
parent
70b7a0a5aa
commit
8228966a37
@ -1,3 +1,2 @@
|
|||||||
DIST gentoo-functions-0.19.tar.bz2 12079 BLAKE2B be0a3a54d4dee1755866047b670a69cd6fec368239123c3f0c08180b79a33c20147bca0e35e568faef6877513551e731bdf0c181aeb0460f6574d2d708219373 SHA512 2674d3fe5724cc6d685ae58bf0ee33f4a1bdba2c5e5809cfb193fd0a710d4678c2d9392c2c62d2321cf455f524950266dc1629ab684fe46632d179e539d5a39e
|
DIST gentoo-functions-0.19.tar.bz2 12079 BLAKE2B be0a3a54d4dee1755866047b670a69cd6fec368239123c3f0c08180b79a33c20147bca0e35e568faef6877513551e731bdf0c181aeb0460f6574d2d708219373 SHA512 2674d3fe5724cc6d685ae58bf0ee33f4a1bdba2c5e5809cfb193fd0a710d4678c2d9392c2c62d2321cf455f524950266dc1629ab684fe46632d179e539d5a39e
|
||||||
DIST gentoo-functions-1.6.tar.bz2 16795 BLAKE2B c901cdb8f2fcb507b5397e9ce674a12641f2129b9be05776bb272e09b9db3a6d205e6a00ef51f71b3203eac4e333b297cfe5ae5d61f9dd43074073a749ca171e SHA512 922b801c79f12d15bcabdb6cd52246cc60a4b512dfcc10bb3933f07d2ec03e01fe5be72502ae34c87374c8a7e880ce268e7dc8d1afcbd28b65efb51b9e467306
|
|
||||||
DIST gentoo-functions-1.7.2.tar.bz2 29059 BLAKE2B 2b3d13e6f5b553fd0fa7a0880677bd61c82c8815d3801a2d80e7632a97c36f81b41075109856f6248ad0eb2453b511066e63a110c97984e6427135ad19cdc234 SHA512 3839b04784576cc5c5824b24f967862ea421be051983d1ac587de7e21b0fbc4f403e0d4f707ee5cbcf466ec4a12d188da9413a81ca71993c957328ff225cb9af
|
DIST gentoo-functions-1.7.2.tar.bz2 29059 BLAKE2B 2b3d13e6f5b553fd0fa7a0880677bd61c82c8815d3801a2d80e7632a97c36f81b41075109856f6248ad0eb2453b511066e63a110c97984e6427135ad19cdc234 SHA512 3839b04784576cc5c5824b24f967862ea421be051983d1ac587de7e21b0fbc4f403e0d4f707ee5cbcf466ec4a12d188da9413a81ca71993c957328ff225cb9af
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
From 755177bbfcf4c46ad1ac31ad9501a6c8725b1a68 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kerin Millar <kfm@plushkava.net>
|
|
||||||
Date: Sun, 2 Jun 2024 04:36:27 +0100
|
|
||||||
Subject: Add the warn() function
|
|
||||||
|
|
||||||
This will be used internally by a forthcoming commit.
|
|
||||||
|
|
||||||
Signed-off-by: Kerin Millar <kfm@plushkava.net>
|
|
||||||
---
|
|
||||||
functions.sh | 8 ++++++++
|
|
||||||
1 file changed, 8 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/functions.sh b/functions.sh
|
|
||||||
index 9736747..a97dde7 100644
|
|
||||||
--- a/functions.sh
|
|
||||||
+++ b/functions.sh
|
|
||||||
@@ -473,6 +473,14 @@ vewend()
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
+#
|
|
||||||
+# Prints a diagnostic message prefixed with the basename of the running script.
|
|
||||||
+#
|
|
||||||
+warn()
|
|
||||||
+{
|
|
||||||
+ printf '%s: %s\n' "${0##*/}" "$*" >&2
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
#
|
|
||||||
# Determines whether the first parameter is truthy. The values taken to be true
|
|
||||||
# are "yes", "true", "on" and "1", whereas their opposites are taken to be
|
|
||||||
--
|
|
||||||
cgit v1.2.3-65-gdbad
|
|
||||||
|
|
@ -1,233 +0,0 @@
|
|||||||
From 3f2519288f1074a7ef5e8378f4bdf37809b262e5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kerin Millar <kfm@plushkava.net>
|
|
||||||
Date: Sun, 2 Jun 2024 04:36:37 +0100
|
|
||||||
Subject: Relax parameter validation for various functions
|
|
||||||
|
|
||||||
Following some deliberation over the matter, I have concluded that
|
|
||||||
calling die() for the handling of invalid parameters ought not to be
|
|
||||||
considered as a matter of course. As such, this commit retains the
|
|
||||||
existing diagnostics for the functions listed below, while modifying
|
|
||||||
them so as to no longer attempt to exit the shell.
|
|
||||||
|
|
||||||
- eend
|
|
||||||
- eqatag
|
|
||||||
- esyslog
|
|
||||||
- ewend
|
|
||||||
- is_older than
|
|
||||||
- veend
|
|
||||||
- vewend
|
|
||||||
- yesno
|
|
||||||
|
|
||||||
Signed-off-by: Kerin Millar <kfm@plushkava.net>
|
|
||||||
---
|
|
||||||
functions.sh | 69 ++++++++++++++++++++++++++++++++++------------------------
|
|
||||||
test-functions | 13 ++---------
|
|
||||||
2 files changed, 42 insertions(+), 40 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/functions.sh b/functions.sh
|
|
||||||
index 48b4c5a..ec1f339 100644
|
|
||||||
--- a/functions.sh
|
|
||||||
+++ b/functions.sh
|
|
||||||
@@ -63,7 +63,7 @@ if ! command -v die >/dev/null; then
|
|
||||||
*)
|
|
||||||
genfun_status=$?
|
|
||||||
esac
|
|
||||||
- printf '%s: %s\n' "${0##*/}" "$*" >&2
|
|
||||||
+ warn "$@"
|
|
||||||
exit "${genfun_status}"
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
@@ -209,7 +209,8 @@ eqatag()
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
if [ "$#" -eq 0 ]; then
|
|
||||||
- die "eqatag: no tag specified"
|
|
||||||
+ warn "eqatag: no tag specified"
|
|
||||||
+ return 1
|
|
||||||
fi
|
|
||||||
positional=0
|
|
||||||
tag=$1
|
|
||||||
@@ -222,7 +223,8 @@ eqatag()
|
|
||||||
case ${arg} in
|
|
||||||
[!=/]*=?*)
|
|
||||||
if [ "${positional}" -eq 1 ]; then
|
|
||||||
- _throw_invalid_args eqatag "${arg}"
|
|
||||||
+ _warn_for_args eqatag "${arg}"
|
|
||||||
+ return 1
|
|
||||||
fi
|
|
||||||
set -- "$@" --arg "${arg%%=*}" "${arg#*=}"
|
|
||||||
;;
|
|
||||||
@@ -234,7 +236,8 @@ eqatag()
|
|
||||||
set -- "$@" "${arg}"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
- _throw_invalid_args eqatag "${arg}"
|
|
||||||
+ _warn_for_args eqatag "${arg}"
|
|
||||||
+ return 1
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
json=$(
|
|
||||||
@@ -269,7 +272,8 @@ esyslog()
|
|
||||||
local pri tag msg
|
|
||||||
|
|
||||||
if [ "$#" -lt 2 ]; then
|
|
||||||
- die "esyslog: too few arguments (got $#, expected at least 2)"
|
|
||||||
+ warn "esyslog: too few arguments (got $#, expected at least 2)"
|
|
||||||
+ return 1
|
|
||||||
elif yesno "${EINFO_LOG}" && hash logger 2>/dev/null; then
|
|
||||||
pri=$1
|
|
||||||
tag=$2
|
|
||||||
@@ -380,8 +384,9 @@ is_older_than()
|
|
||||||
{
|
|
||||||
local ref has_gfind
|
|
||||||
|
|
||||||
- if [ "$#" -lt 2 ]; then
|
|
||||||
- die "is_older_than: too few arguments (got $#, expected at least 2)"
|
|
||||||
+ if [ "$#" -eq 0 ]; then
|
|
||||||
+ warn "is_older_than: too few arguments (got $#, expected at least 1)"
|
|
||||||
+ return 1
|
|
||||||
elif [ -e "$1" ]; then
|
|
||||||
ref=$1
|
|
||||||
else
|
|
||||||
@@ -431,7 +436,8 @@ veend()
|
|
||||||
if yesno "${EINFO_VERBOSE}"; then
|
|
||||||
GENFUN_CALLER=veend eend "$@"
|
|
||||||
elif [ "$#" -gt 0 ] && { ! is_int "$1" || [ "$1" -lt 0 ]; }; then
|
|
||||||
- _throw_invalid_args veend "$1"
|
|
||||||
+ _warn_for_args veend "$1"
|
|
||||||
+ false
|
|
||||||
else
|
|
||||||
return "$1"
|
|
||||||
fi
|
|
||||||
@@ -442,7 +448,8 @@ vewend()
|
|
||||||
if yesno "${EINFO_VERBOSE}"; then
|
|
||||||
GENFUN_CALLER=vewend ewend "$@"
|
|
||||||
elif [ "$#" -gt 0 ] && { ! is_int "$1" || [ "$1" -lt 0 ]; }; then
|
|
||||||
- _throw_invalid_args vewend "$1"
|
|
||||||
+ _warn_for_args vewend "$1"
|
|
||||||
+ false
|
|
||||||
else
|
|
||||||
return "$1"
|
|
||||||
fi
|
|
||||||
@@ -459,7 +466,8 @@ yesno()
|
|
||||||
local arg
|
|
||||||
|
|
||||||
if [ "$#" -eq 0 ]; then
|
|
||||||
- die "yesno: too few arguments (got $#, expected 1)"
|
|
||||||
+ warn "yesno: too few arguments (got $#, expected 1)"
|
|
||||||
+ return 1
|
|
||||||
fi
|
|
||||||
arg=$1
|
|
||||||
for _ in 1 2; do
|
|
||||||
@@ -471,14 +479,15 @@ yesno()
|
|
||||||
return 0
|
|
||||||
esac
|
|
||||||
if [ "$_" -ne 1 ] || ! is_identifier "$1"; then
|
|
||||||
- ! break
|
|
||||||
+ break
|
|
||||||
else
|
|
||||||
# The value appears to be a legal variable name. Treat
|
|
||||||
# it as a name reference and try again, once only.
|
|
||||||
eval "arg=\$$1"
|
|
||||||
fi
|
|
||||||
- done || _throw_invalid_args yesno "$1"
|
|
||||||
- return 1
|
|
||||||
+ done
|
|
||||||
+ _warn_for_args yesno "$@"
|
|
||||||
+ false
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
@@ -494,7 +503,9 @@ _eend()
|
|
||||||
if [ "$#" -eq 0 ]; then
|
|
||||||
retval=0
|
|
||||||
elif ! is_int "$1" || [ "$1" -lt 0 ]; then
|
|
||||||
- _throw_invalid_args "${GENFUN_CALLER}" "$1"
|
|
||||||
+ _warn_for_args "${GENFUN_CALLER}" "$1"
|
|
||||||
+ retval=1
|
|
||||||
+ msg=
|
|
||||||
else
|
|
||||||
retval=$1
|
|
||||||
shift
|
|
||||||
@@ -662,21 +673,6 @@ _print_args()
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
-#
|
|
||||||
-# Prints a diganostic message concerning invalid function arguments then exits.
|
|
||||||
-# The first argument shall be taken as a function identifier. The remaining
|
|
||||||
-# arguments shall be safely rendered as a part of the diagnostic.
|
|
||||||
-#
|
|
||||||
-_throw_invalid_args()
|
|
||||||
-{
|
|
||||||
- local ident plural
|
|
||||||
-
|
|
||||||
- ident=$1
|
|
||||||
- shift
|
|
||||||
- [ "$#" -gt 1 ] && plural=s || plural=
|
|
||||||
- die "${ident}: invalid argument${plural}: $(_print_args "$@")"
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
#
|
|
||||||
# Determines whether the terminal on STDIN is able to report its dimensions.
|
|
||||||
# Upon success, the number of columns shall be stored in genfun_cols.
|
|
||||||
@@ -718,6 +714,21 @@ _update_tty_level()
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
+#
|
|
||||||
+# Prints a diganostic message concerning invalid function arguments. The first
|
|
||||||
+# argument shall be taken as a function identifier. The remaining arguments
|
|
||||||
+# shall be safely rendered as a part of the diagnostic.
|
|
||||||
+#
|
|
||||||
+_warn_for_args()
|
|
||||||
+{
|
|
||||||
+ local ident plural
|
|
||||||
+
|
|
||||||
+ ident=$1
|
|
||||||
+ shift
|
|
||||||
+ [ "$#" -gt 1 ] && plural=s || plural=
|
|
||||||
+ warn "${ident}: invalid argument${plural}: $(_print_args "$@")"
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
# All function declarations end here! Initialisation code only from hereon.
|
|
||||||
# shellcheck disable=2034
|
|
||||||
RC_GOT_FUNCTIONS=yes
|
|
||||||
diff --git a/test-functions b/test-functions
|
|
||||||
index d65a3a2..4a6e7dd 100755
|
|
||||||
--- a/test-functions
|
|
||||||
+++ b/test-functions
|
|
||||||
@@ -196,11 +196,7 @@ test_is_older_than() {
|
|
||||||
callback() {
|
|
||||||
shift
|
|
||||||
test_description="is_older_than $(_print_args "$@")"
|
|
||||||
- if [ "$#" -lt 2 ]; then
|
|
||||||
- ( is_older_than "$@" )
|
|
||||||
- else
|
|
||||||
- is_older_than "$@"
|
|
||||||
- fi
|
|
||||||
+ is_older_than "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
iterate_tests 4 "$@"
|
|
||||||
@@ -392,16 +388,11 @@ test_yesno() {
|
|
||||||
|
|
||||||
# shellcheck disable=2034
|
|
||||||
truthful_nameref=yes
|
|
||||||
- row=0
|
|
||||||
|
|
||||||
callback() {
|
|
||||||
shift
|
|
||||||
test_description="yesno $(_print_args "$@")"
|
|
||||||
- if [ "$(( row += 1 ))" -ge 22 ]; then
|
|
||||||
- ( yesno "$@" )
|
|
||||||
- else
|
|
||||||
- yesno "$@"
|
|
||||||
- fi
|
|
||||||
+ yesno "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
iterate_tests 3 "$@"
|
|
||||||
--
|
|
||||||
cgit v1.2.3-65-gdbad
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
# Copyright 2014-2024 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
if [[ ${PV} == 9999* ]]; then
|
|
||||||
inherit git-r3
|
|
||||||
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gentoo-functions.git"
|
|
||||||
else
|
|
||||||
SRC_URI="https://gitweb.gentoo.org/proj/gentoo-functions.git/snapshot/${P}.tar.bz2"
|
|
||||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
|
||||||
fi
|
|
||||||
|
|
||||||
inherit meson
|
|
||||||
|
|
||||||
DESCRIPTION="Base functions required by all Gentoo systems"
|
|
||||||
HOMEPAGE="https://gitweb.gentoo.org/proj/gentoo-functions.git"
|
|
||||||
|
|
||||||
LICENSE="GPL-2"
|
|
||||||
SLOT="0"
|
|
||||||
IUSE="test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
# Specifically needs GNU find, as well.
|
|
||||||
RDEPEND=">=sys-apps/findutils-4.9"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}/${P}-relax-parameter-validation.patch"
|
|
||||||
"${FILESDIR}/${P}-add-warn-function.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local emesonargs=(
|
|
||||||
# Deliberately avoid /usr as consumers assume we're at /lib/gentoo.
|
|
||||||
--prefix="${EPREFIX:-/}"
|
|
||||||
--mandir="${EPREFIX}/usr/share/man"
|
|
||||||
$(meson_use test tests)
|
|
||||||
)
|
|
||||||
|
|
||||||
meson_src_configure
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user