diff options
Diffstat (limited to 'rules')
-rw-r--r-- | rules/base.sh | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/rules/base.sh b/rules/base.sh new file mode 100644 index 0000000..f2699af --- /dev/null +++ b/rules/base.sh @@ -0,0 +1,166 @@ +#!/bin/sh +# +# Copyright (c) 2011 William Pitcock <nenolod@dereferenced.org>. +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +_abh_builddir="${srcdir}/${pkgname}-${pkgver}" + +_abh_prepare_preactions="" +_abh_prepare_postactions="" + +abh_preprepare_push() { + _abh_prepare_preactions="${_abh_prepare_preactions} $1" +} + +abh_postprepare_push() { + _abh_prepare_postactions="${_abh_prepare_postactions} $1" +} + +prepare() { + cd "${_abh_builddir}" + + for i in ${_abh_prepare_preactions}; do + msg "--> $i (prepare)" + $i || return 1 + msg "<-- $i (prepare)" + done + + for i in ${_abh_prepare_postactions}; do + msg "--> $i (prepare)" + $i || return 1 + msg "<-- $i (prepare)" + done +} + +_abh_build_preactions="" +_abh_build_postactions="" + +abh_prebuild_push() { + _abh_build_preactions="${_abh_build_preactions} $1" +} + +abh_postbuild_push() { + _abh_build_postactions="${_abh_build_postactions} $1" +} + +build() { + cd "${_abh_builddir}" + + for i in ${_abh_build_preactions}; do + msg "--> $i (build)" + $i || return 1 + msg "<-- $i (build)" + done + + for i in ${_abh_build_postactions}; do + msg "--> $i (build)" + $i || return 1 + msg "<-- $i (build)" + done +} + +_abh_package_preactions="" +_abh_package_postactions="" + +abh_prepackage_push() { + _abh_package_preactions="${_abh_package_preactions} $1" +} + +abh_postpackage_push() { + _abh_package_postactions="${_abh_package_postactions} $1" +} + +package() { + cd "${_abh_builddir}" + + for i in ${_abh_package_preactions}; do + msg "--> $i (package)" + $i || return 1 + msg "<-- $i (package)" + done + + for i in ${_abh_package_postactions}; do + msg "--> $i (package)" + $i || return 1 + msg "<-- $i (package)" + done +} + +_abh_dev_preactions="" +_abh_dev_postactions="" + +abh_predev_push() { + _abh_dev_preactions="${_abh_dev_preactions} $1" +} + +abh_postdev_push() { + _abh_dev_postactions="${_abh_dev_postactions} $1" +} + +dev() { + abh_predev_push default_dev + + for i in ${_abh_dev_preactions}; do + msg "--> $i (dev)" + $i || return 1 + msg "<-- $i (dev)" + done + + for i in ${_abh_dev_postactions}; do + msg "--> $i (dev)" + $i || return 1 + msg "<-- $i (dev)" + done +} + +_abh_doc_preactions="" +_abh_doc_postactions="" + +abh_predoc_push() { + _abh_doc_preactions="${_abh_doc_preactions} $1" +} + +abh_postdoc_push() { + _abh_doc_postactions="${_abh_doc_postactions} $1" +} + +doc() { + abh_predoc_push default_doc + + for i in ${_abh_doc_preactions}; do + msg "--> $i (doc)" + $i || return 1 + msg "<-- $i (doc)" + done + + for i in ${_abh_doc_postactions}; do + msg "--> $i (doc)" + $i || return 1 + msg "<-- $i (doc)" + done +} + +# FUNCTION: using +# import an abuildhelper class +using() { + if [ "$1" != "plugin" ]; then + source /usr/share/abuildhelper/class/${1}.sh + else + source /usr/share/abuildhelper/plugin/${2}.sh + fi +} |