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