summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorWilliam Hubbs <williamh@gentoo.org>2015-08-05 15:42:55 +0000
committerWilliam Hubbs <williamh@gentoo.org>2015-08-05 15:42:55 +0000
commit1c9b600caaa19af8f092a59074fd83b143f9829a (patch)
treed8a1e17a30bb5f6a31c3ae3cfdd1d842726f72c4 /eclass
parentBump. Enable unit tests and disable python bindings until someone asks for them (diff)
downloadhistorical-1c9b600caaa19af8f092a59074fd83b143f9829a.tar.gz
historical-1c9b600caaa19af8f092a59074fd83b143f9829a.tar.bz2
historical-1c9b600caaa19af8f092a59074fd83b143f9829a.zip
Add eclass for vcs snapshots of software written in Go.
Diffstat (limited to 'eclass')
-rw-r--r--eclass/ChangeLog5
-rw-r--r--eclass/golang-vcs-snapshot.eclass56
2 files changed, 60 insertions, 1 deletions
diff --git a/eclass/ChangeLog b/eclass/ChangeLog
index cfdb8dc7303f..c2d2469b782c 100644
--- a/eclass/ChangeLog
+++ b/eclass/ChangeLog
@@ -1,6 +1,9 @@
# ChangeLog for eclass directory
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1744 2015/08/03 18:31:41 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1745 2015/08/05 15:42:55 williamh Exp $
+
+ 05 Aug 2015; William Hubbs <williamh@gentoo.org> +golang-vcs-snapshot.eclass:
+ Add eclass for vcs snapshots of software written in Go.
03 Aug 2015; Michael Sterrett <mr_bones_@gentoo.org> python-utils-r1.eclass:
Add quotes to support reading from files with spaces in the filename.
diff --git a/eclass/golang-vcs-snapshot.eclass b/eclass/golang-vcs-snapshot.eclass
new file mode 100644
index 000000000000..55c5493488ce
--- /dev/null
+++ b/eclass/golang-vcs-snapshot.eclass
@@ -0,0 +1,56 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/golang-vcs-snapshot.eclass,v 1.1 2015/08/05 15:42:55 williamh Exp $
+
+# @ECLASS: golang-vcs-snapshot.eclass
+# @MAINTAINER:
+# William Hubbs <williamh@gentoo.org>
+# @BLURB: support eclass for unpacking VCS snapshot tarballs for
+# software written in the Go programming language
+# @DESCRIPTION:
+# This eclass provides a convenience src_unpack() which unpacks the
+# first tarball mentioned in SRC_URI to its appropriate location in
+# ${WORKDIR}/${P}, treating ${WORKDIR}/${P} as a go workspace.
+#
+# The location where the tarball is extracted is defined as
+# ${WORKDIR}/${P}/src/${EGO_PN}.
+#
+# The typical use case is VCS snapshots coming from github, bitbucket
+# and similar services.
+#
+# Please note that this eclass currently handles only tarballs
+# (.tar.gz), but support for more formats may be added in the future.
+#
+# @EXAMPLE:
+#
+# @CODE
+# EGO_PN=github.com/user/package
+# inherit golang-vcs-snapshot
+#
+# SRC_URI="http://github.com/example/${PN}/tarball/v${PV} -> ${P}.tar.gz"
+# @CODE
+#
+# The above example will extract the tarball to
+# ${WORKDIR}/${P}/src/github.com/user/package
+
+inherit golang-base
+
+case ${EAPI:-0} in
+ 5) ;;
+ *) die "${ECLASS} API in EAPI ${EAPI} not yet established."
+esac
+
+EXPORT_FUNCTIONS src_unpack
+
+# @FUNCTION: golang-vcs-snapshot_src_unpack
+# @DESCRIPTION:
+# Extract the first archive from ${A} to the appropriate location for GOPATH.
+golang-vcs-snapshot_src_unpack() {
+ local x
+ ego_pn_check
+ set -- ${A}
+ x="$1"
+ mkdir -p "${WORKDIR}/${P}/src/${EGO_PN%/*}"
+ tar -C "${WORKDIR}/${P}/src/${EGO_PN%/*}" -x --strip-components 1 \
+ -f "${DISTDIR}/${x}" || die
+}