You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.7 KiB
57 lines
1.7 KiB
9 years ago
|
# 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.2 2015/08/05 19:23:28 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%/*}" || die
|
||
|
tar -C "${WORKDIR}/${P}/src/${EGO_PN%/*}" -x --strip-components 1 \
|
||
|
-f "${DISTDIR}/${x}" || die
|
||
|
}
|