public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH 1/5] out-of-source-utils.eclass: New utility eclass
@ 2023-01-01 15:59 Michał Górny
  2023-01-01 15:59 ` [gentoo-dev] [PATCH 2/5] multibuild.eclass: Provide run_in_build_dir from out-of-source-utils Michał Górny
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Michał Górny @ 2023-01-01 15:59 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

Introduce a new out-of-source-utils.eclass to carry run_in_build_dir()
helper function.  This function used to be defined in multibuild.eclass
and indirectly exposed through the eclasses using it.  However, it is
used rather rarely and it is technically also useful for
out-of-source.eclass, so it makes more sense for it to be standalone.
In the end, eclasses are cheap.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
---
 eclass/out-of-source-utils.eclass | 43 +++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 eclass/out-of-source-utils.eclass

diff --git a/eclass/out-of-source-utils.eclass b/eclass/out-of-source-utils.eclass
new file mode 100644
index 000000000000..450237b224b3
--- /dev/null
+++ b/eclass/out-of-source-utils.eclass
@@ -0,0 +1,43 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: out-of-source-utils.eclass
+# @MAINTAINER:
+# Michał Górny <mgorny@gentoo.org>
+# @AUTHOR:
+# Michał Górny <mgorny@gentoo.org>
+# @SUPPORTED_EAPIS: 6 7 8
+# @BLURB: Utility functions for building packages out-of-source
+# @DESCRIPTION:
+# This eclass provides a run_in_build_dir() helper that can be used
+# to execute specified command inside BUILD_DIR.
+
+case ${EAPI} in
+	6|7|8) ;;
+	*) die "${ECLASS}: EAPI ${EAPI} unsupported."
+esac
+
+if [[ ! ${_OUT_OF_SOURCE_UTILS_ECLASS} ]]; then
+_OUT_OF_SOURCE_UTILS_ECLASS=1
+
+# @FUNCTION: run_in_build_dir
+# @USAGE: <argv>...
+# @DESCRIPTION:
+# Run the given command in the directory pointed by BUILD_DIR.
+run_in_build_dir() {
+	debug-print-function ${FUNCNAME} "${@}"
+	local ret
+
+	[[ ${#} -eq 0 ]] && die "${FUNCNAME}: no command specified."
+	[[ -z ${BUILD_DIR} ]] && die "${FUNCNAME}: BUILD_DIR not set."
+
+	mkdir -p "${BUILD_DIR}" || die
+	pushd "${BUILD_DIR}" >/dev/null || die
+	"${@}"
+	ret=${?}
+	popd >/dev/null || die
+
+	return ${ret}
+}
+
+fi
-- 
2.39.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-01-02 12:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-01 15:59 [gentoo-dev] [PATCH 1/5] out-of-source-utils.eclass: New utility eclass Michał Górny
2023-01-01 15:59 ` [gentoo-dev] [PATCH 2/5] multibuild.eclass: Provide run_in_build_dir from out-of-source-utils Michał Górny
2023-01-01 15:59 ` [gentoo-dev] [PATCH 3/5] multilib-build.eclass: Stop providing multibuild.eclass Michał Górny
2023-01-01 15:59 ` [gentoo-dev] [PATCH 4/5] python-r1.eclass: " Michał Górny
2023-01-01 15:59 ` [gentoo-dev] [PATCH 5/5] out-of-source.eclass: Document BUILD_DIR Michał Górny
2023-01-02  9:25 ` [gentoo-dev] [PATCH 1/5] out-of-source-utils.eclass: New utility eclass Ulrich Mueller
2023-01-02 12:24   ` Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox