diff options
author | 2015-08-05 15:42:55 +0000 | |
---|---|---|
committer | 2015-08-05 15:42:55 +0000 | |
commit | 1c9b600caaa19af8f092a59074fd83b143f9829a (patch) | |
tree | d8a1e17a30bb5f6a31c3ae3cfdd1d842726f72c4 /eclass | |
parent | Bump. Enable unit tests and disable python bindings until someone asks for them (diff) | |
download | historical-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/ChangeLog | 5 | ||||
-rw-r--r-- | eclass/golang-vcs-snapshot.eclass | 56 |
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 +} |