summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/monotone.eclass')
-rw-r--r--eclass/monotone.eclass202
1 files changed, 0 insertions, 202 deletions
diff --git a/eclass/monotone.eclass b/eclass/monotone.eclass
deleted file mode 100644
index 5268660a..00000000
--- a/eclass/monotone.eclass
+++ /dev/null
@@ -1,202 +0,0 @@
-# Copyright 2010-2018 Martin V\"ath
-# Distributed under the terms of the GNU General Public License v2
-
-# @ECLASS: monotone.eclass
-# @MAINTAINER:
-# Martin Väth <martin@mvath.de>
-# @AUTHOR:
-# Martin Väth <martin@mvath.de>
-# @SUPPORTED_EAPIS: 0 1 2 3 4 5 6 7
-# @BLURB: The monotone eclass is written to fetch software sources from monotone repositories
-# @DESCRIPTION:
-# The monotone eclass provides functions to fetch software sources from
-# monotone repositories.
-
-# @ECLASS-VARIABLE: EMTN_STORE_DIR
-# @DESCRIPTION:
-# monotone sources store directory. Users may override this in /etc/make.conf
-: ${EMTN_STORE_DIR:=${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}/mtn-src}
-
-# @ECLASS-VARIABLE: EMTN_OFFLINE
-# @DESCRIPTION:
-# Set this variable to a non-empty value to disable the automatic updating of
-# an monotone source tree. This is intended to be set by users.
-: ${EMTN_OFFLINE:=${EVCS_OFFLINE}}
-
-# @ECLASS-VARIABLE: EMTN_CMD
-# @DESCRIPTION:
-# monotone command with argument for database which must be '$db'
-: ${EMTN_CMD:=mtn -d \"\$db\"}
-
-# @ECLASS-VARIABLE: EMTN_PULL_CMD
-# @DESCRIPTION:
-# monotone pull command
-: ${EMTN_PULL_CMD:=${EMTN_CMD} pull}
-
-# @ECLASS-VARIABLE: EMTN_INIT_CMD
-# @DESCRIPTION:
-# monotone init command
-: ${EMTN_INIT_CMD:=${EMTN_CMD} db init}
-
-# @ECLASS-VARIABLE: EMTN_CO_CMD
-# @DESCRIPTION:
-# monotone checkout command
-: ${EMTN_CO_CMD:=${EMTN_CMD} co}
-
-# @ECLASS-VARIABLE: EMTN_PRINT_HEADS_CMD
-# @DESCRIPTION:
-# monotone command to print the revision of the heads
-: ${EMTN_PRINT_HEADS_CMD:=${EMTN_CMD} automate heads}
-
-# @ECLASS-VARIABLE: EMTN_DB
-# @DESCRIPTION:
-# Name of the database file where the local monotone repository is stored.
-: ${EMTN_DB:=${PN}.db}
-
-# @ECLASS-VARIABLE: EMTN_REPO_URI
-# @DESCRIPTION:
-# Name of the external monotone repository, e.g. foo.bar.org
-: ${EMTN_REPO_URI:=}
-
-# @ECLASS-VARIABLE: EMTN_GLOB
-# @DESCRIPTION:
-# Name of the glob for the external repository. Typically '*'
-: ${EMTN_GLOB:=*}
-
-# @ECLASS-VARIABLE: EMTN_MODULEPATH
-# @DESCRIPTION:
-# Name of the module to checkout
-: ${EMTN_MODULEPATH:=${PN}}
-
-# @ECLASS-VARIABLE: EMTN_MODULEDIR
-# @DESCRIPTION:
-# Name where the module should come. Empty means: basename of modulepath.
-: ${EMTN_MODULEDIR:=}
-
-# @ECLASS-VARIABLE: EMTN_REVISIONARGS
-# @DESCRIPTION:
-# Args for revision to checkout, e.g. "-r something"
-# The special value "head" means to use the first head.
-: ${EMTN_REVISIONARGS=head}
-
-# @ECLASS-VARIABLE: EMTN_DISABLE_DEPENDENCIES
-# @DESCRIPTION:
-# Set this variable to a non-empty value to disable the automatic inclusion of
-# monotone in dependencies.
-: ${EMTN_DISABLE_DEPENDENCIES:=}
-
-# @FUNCTION: monotone_fetch
-# @USAGE: [repo_uri] [glob] [db]
-# @DESCRIPTION:
-# Fetch/update ${EMTN_STORE_DIR}/database from external uri (using glob)
-# and copy it into ${S}.
-# After this function, current working directory is ${S}.
-#
-# Can take three optional parameters:
-# repo_uri - a repository URI. If empty defaults to EMTN_REPO_URI.
-# glob - The glob for URI. If empty defaults to EMTN_GLOB.
-# db - the database filename. If empty defaults to EMTN_DB.
-monotone_fetch() {
- local repo_uri glob db db_full
- repo_uri=${1:-${EMTN_REPO_URI}}
- glob=${2:-${EMTN_GLOB}}
- db=${3:-${EMTN_DB}}
- test -d "${EMTN_STORE_DIR}" || (
- addwrite /
- mkdir -p -- "/${EMTN_STORE_DIR}"
- )
- cd -P -- "${EMTN_STORE_DIR}" >/dev/null \
- || die "cannot cd to ${EMTN_STORE_DIR}"
-
- if ! test -e "${db}"
- then (
- addwrite "${PWD}"
- einfo "Initializing new ${db}" && \
- eval "${EMTN_INIT_CMD}" && \
- einfo "Fetching ${db} from remote ${repo_uri}" && \
- eval "${EMTN_PULL_CMD} \"\${repo_uri}\" \"\${glob}\""
- )
- elif [ -z "${EMTN_OFFLINE}" ]
- then (
- addwrite "${PWD}"
- einfo "Updating ${db} from remote ${repo_uri}"
- eval "${EMTN_PULL_CMD}"
- )
- fi || die "Could not fetch/update ${db}"
- db_full="${EMTN_STORE_DIR}/${db}"
- einfo "Copying database ${db_full} ..."
- test -d "${S}" || mkdir -p -- "${S}" || die "mkdir ${S} failed"
- cd -- "${S}" >/dev/null
- cp -p -- "${db_full}" "${db}" || die "cp ${db_full} ${db} failed"
-}
-
-# @FUNCTION: monotone_co
-# @USAGE: [db] [modulepath] [moduledir] [revisionargs]
-# @DESCRIPTION:
-# Unpack monotone sources from the local database.
-#
-# All parameters are optional:
-# db - the database filename. If empty defaults to EMTN_DB.
-# modulepath - the name of the module to checkout.
-# If empty defaults to EMTN_MODULEPATH
-# moduledir - the name of the directory in which the module should come.
-# If empty defaults to EMTN_MODULEDIR
-# If that is also empty defaults to basename of EMTN_MODULEPATH.
-# revisionargs - Args for the revision to checkout. If empty defaults to
-# EMTN_REVISIONARGS.
-# The special value "head" means to use the first head.
-monotone_co() {
- local db modulepath moduledir r
- db=${1:-${EMTN_DB}}
- modulepath=${2:-${EMTN_MODULEPATH}}
- moduledir=${3:-${EMTN_MODULEDIR}}
- [ -z "${moduledir}" ] && moduledir=${modulepath##*/}
- if [ ${#} -gt 3 ]
- then shift 3
- else eval "set -- ${EMTN_REVISIONARGS}"
- fi
- if [ "${1}" = 'head' ]
- then if r=`eval "${EMTN_PRINT_HEADS_CMD} \"\${modulepath}\"" \
- | tail -n1` && [ -n "${r}" ]
- then set -- -r "${r}"
- else set --
- fi
- fi
- if [ -n "${modulepath}" ]
- then einfo "Checking out module ${modulepath}"
- eval "${EMTN_CO_CMD} -b \"\${modulepath}\" \"\${@}\" \"\${moduledir}\"" \
- || die "checkout of ${modulepath} failed"
- else einfo "Checking out module ${module}"
- eval "${EMTN_CO_CMD} \"\${@}\" \"\${moduledir}\"" \
- || die "checkout of ${module} failed"
- fi
-}
-
-# @FUNCTION: monotone_finish
-# @USAGE: [db]
-# @DESCRIPTION:
-# Call this when all modules are checked out: Removes the local database.
-# The optional argument db defaults to EMTN_DB.
-monotone_finish() {
- local db
- db=${1:-${EMTN_DB}}
- rm -- "${S}/${db}" || die "cannot remove ${S}/${db}"
-}
-
-# @FUNCTION: monotone_src_unpack
-# @DESCRIPTION:
-# Default src_unpack. Call monotone_fetch, monotone_co, monotone_finish
-monotone_src_unpack() {
- monotone_fetch
- monotone_co
- monotone_finish
-}
-
-[ -n "${EMTN_DISABLE_DEPENDENCIES}" ] || case ${EAPI:-0} in
-0|1|2|3|4|5|6)
- DEPEND='dev-vcs/monotone';;
-*)
- BDEPEND='dev-vcs/monotone';;
-esac
-
-EXPORT_FUNCTIONS src_unpack