1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- # Copyright 1999-2016 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- EAPI=5
- if [[ ${PV} == *9999* ]]; then
- inherit git-r3
- fi
- inherit golang-build
- KEYWORDS="~amd64"
- DESCRIPTION="Replicated SQLite using the Raft consensus protocol "
- EGO_PN="github.com/otoolep/rqlite/..."
- HOMEPAGE="https://github.com/rqlite/rqlite http://www.philipotoole.com/tag/rqlite/"
- LICENSE="MIT"
- SLOT="0/${PVR}"
- IUSE=""
- RESTRICT="test"
- EGIT_REPO_URI="https://github.com/rqlite/rqlite.git"
- EGIT_COMMIT="v${PV}"
- SRC_URI="https://${EGO_PN%/*}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz
- https://github.com/armon/go-metrics/archive/345426c77237ece5dab0e1605c3e4b35c3f54757.tar.gz -> go-metrics-345426c77237ece5dab0e1605c3e4b35c3f54757.tar.gz
- https://github.com/boltdb/bolt/archive/ee4a0888a9abe7eefe5a0992ca4cb06864839873.tar.gz -> bolt-ee4a0888a9abe7eefe5a0992ca4cb06864839873.tar.gz
- https://github.com/hashicorp/go-msgpack/archive/fa3f63826f7c23912c15263591e65d54d080b458.tar.gz -> go-msgpack-fa3f63826f7c23912c15263591e65d54d080b458.tar.gz
- https://github.com/hashicorp/raft/archive/057b893fd996696719e98b6c44649ea14968c811.tar.gz -> hashicorp-raft-057b893fd996696719e98b6c44649ea14968c811.tar.gz
- https://github.com/hashicorp/raft-boltdb/archive/d1e82c1ec3f15ee991f7cc7ffd5b67ff6f5bbaee.tar.gz -> hashicorp-boltdb-d1e82c1ec3f15ee991f7cc7ffd5b67ff6f5bbaee.tar.gz
- https://github.com/mattn/go-sqlite3/archive/10876d7dac65f02064c03d7372a2f1dfb90043fe.tar.gz -> go-sqlite3-1.1.0_p20160307.tar.gz"
- get_archive_go_package() {
- local archive=${1} uri x
- for x in ${SRC_URI}; do
- if [[ ${x} == http* ]]; then
- uri=${x}
- elif [[ ${x} == ${archive} ]]; then
- break
- fi
- done
- uri=${uri#https://}
- echo ${uri%/archive/*}
- }
- unpack_go_packages() {
- local go_package x
- # Unpack packages to appropriate locations for GOPATH
- for x in ${A}; do
- unpack ${x}
- if [[ ${x} == *.tar.gz ]]; then
- go_package=$(get_archive_go_package ${x})
- if [[ ${x%.tar.gz} -ef ${S} ]]; then
- mv "${S}"{,_} || die
- mkdir -p "${S}/src/${go_package%/*}" || die
- mv "${S}"_ "${S}/src/${go_package}" || die || die
- else
- mkdir -p "${S}/src/${go_package%/*}" || die
- for x in "${go_package##*/}"-*; do
- if [[ ! ${x} -ef ${S} ]]; then
- mv "${x}" "${S}/src/${go_package}" || die
- fi
- done
- fi
- fi
- done
- }
- src_unpack() {
- if [[ ${PV} == *9999* ]]; then
- git-r3_src_unpack
- mv "${S}"{,_} || die
- mkdir -p "$(dirname "${S}/src/${EGO_PN%/*}")" || die
- mv "${S}_" "${S}/src/${EGO_PN%/*}" || die
- fi
- unpack_go_packages
- }
- src_compile() {
- # Omit $(get_golibdir_gopath) from GOPATH, in order to avoid
- # interference from installed rqlite sources.
- GOPATH="${WORKDIR}/${P}" \
- go install -v -work -x ${EGO_BUILD_FLAGS} "${EGO_PN}" || die
- }
- src_install() {
- golang_install_pkgs
- }
- golang_install_pkgs() {
- dobin bin/${PN}d
- insinto $(dirname "${EPREFIX}$(get_golibdir)/src/${EGO_PN%/*}")
- rm -rf "${S}"/src/${EGO_PN%/*}/.git*
- doins -r "${S}"/src/${EGO_PN%/*}
- insinto $(dirname "${EPREFIX}$(get_golibdir)/pkg/$(go env GOOS)_$(go env GOARCH)/${EGO_PN%/*}")
- doins -r "${S}"/pkg/$(go env GOOS)_$(go env GOARCH)/${EGO_PN%/*}{,.a}
- dodoc "${S}/src/${EGO_PN%/*}/"{CHANGELOG,README}.md
- }
|