| # Copyright 1999-2012 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Header: /var/cvsroot/gentoo-x86/eclass/vcs-snapshot.eclass,v 1.2 2012/03/19 08:52:49 mgorny Exp $ |
| |
| # @ECLASS: vcs-snapshot.eclass |
| # @MAINTAINER: |
| # mgorny@gentoo.org |
| # @BLURB: support eclass for VCS (github, bitbucket, gitweb) snapshots |
| # @DESCRIPTION: |
| # This eclass provides a convenience src_unpack() which does support |
| # working with snapshots generated by various VCS-es. It unpacks those |
| # to ${S} rather than the original directory containing commit id. |
| # |
| # Note that this eclass handles only unpacking. You need to specify |
| # SRC_URI yourself, and call any autoreconfiguration as necessary. |
| # The example does that using autotools-utils eclass. |
| # |
| # Right now, the eclass was tested with github, bitbucket and gitweb |
| # snapshots. Feel free to report snapshotting services which aren't |
| # working. |
| # @EXAMPLE: |
| # |
| # @CODE |
| # EAPI=4 |
| # AUTOTOOLS_AUTORECONF=1 |
| # inherit autotools-utils vcs-snapshot |
| # |
| # SRC_URI="http://github.com/example/${PN}/tarball/v${PV} -> ${P}.tar.gz" |
| # @CODE |
| |
| case ${EAPI:-0} in |
| 0|1) die "EAPI ${EAPI} unsupported.";; # default(), SRC_URI arrows |
| 2|3|4) ;; |
| *) die "vcs-snapshot.eclass API in EAPI ${EAPI} not yet established." |
| esac |
| |
| EXPORT_FUNCTIONS src_unpack |
| |
| vcs-snapshot_src_unpack() { |
| default |
| |
| # github, bitbucket: username-projectname-hash |
| # gitweb: projectname-tagname-hash |
| mv *-*-[0-9a-f]*[0-9a-f]/ "${S}" || die |
| } |