On Sat, 2022-04-16 at 19:14 +0100, Sam James wrote:
> Bug: https://bugs.gentoo.org/744880
> Signed-off-by: Sam James <s...@gentoo.org>
> ---
>  eclass/edo.eclass | 46 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
>  create mode 100644 eclass/edo.eclass
> 
> diff --git a/eclass/edo.eclass b/eclass/edo.eclass
> new file mode 100644
> index 000000000000..7b4ae04c43ab
> --- /dev/null
> +++ b/eclass/edo.eclass
> @@ -0,0 +1,46 @@
> +# Copyright 2022 Gentoo Authors
> +# Distributed under the terms of the GNU General Public License v2
> +
> +# @ECLASS: edo.class
> +# @MAINTAINER:
> +# QA Team <q...@gentoo.org>
> +# @AUTHOR:
> +# Sam James <s...@gentoo.org>
> +# @SUPPORTED_EAPIS: 7 8
> +# @BLURB: Convenience function to run commands verbosely and die on failure
> +# @DESCRIPTION:
> +# This eclass provides the 'edo' command, and an 'edob' variant for 
> ebegin/eend,
> +# which dies (exits) on failure and logs the command used verbosely.
> +#
> +
> +case ${EAPI:-0} in
> +     7|8) ;;
> +     *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
> +esac
> +
> +if [[ -z ${_EDO_ECLASS} ]] ; then
> + _EDO_CLASS=1
> +
> +# @FUNCTION: edo

How about calling it 'tokyo'?

> +# @USAGE: <command> [<args>...]
> +# @DESCRIPTION:
> +# Executes 'command' with any given arguments and exits on failure unless
> +# called under 'nonfatal'.
> +edo() {
> +     elog "$@"

einfo?

> +     "$@" || die -n "Failed to run command: $@ failed"
> +}
> +
> +# @FUNCTION: edob
> +# @USAGE: <command> [<args>...]
> +# @DESCRIPTION:
> +# Executes 'command' with ebegin & eend with any given arguments and exits
> +# on failure unless called under 'nonfatal'.
> +# Intended for single commands, otherwise regular ebegin/eend should be used.
> +edob() {
> +     ebegin "Running $@"
> +     "$@"
> +     eend $? || die -n "$@ failed"
> +}
> +
> +fi

-- 
Best regards,
Michał Górny


Reply via email to