pkg-infra: move the hg download helper to a script
Maintaining the download helpers in the Makefile has proved to be a bit complex, so move it to a shell script. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Tested-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> [tested a particular scenario that used to fail, when the 'hg archive' step is interrupted, now working fine] Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
f4526c053f
commit
2fd4b959bd
@ -13,7 +13,7 @@ export SVN := $(call qstrip,$(BR2_SVN))
|
||||
export CVS := $(call qstrip,$(BR2_CVS))
|
||||
BZR := $(call qstrip,$(BR2_BZR))
|
||||
export GIT := $(call qstrip,$(BR2_GIT))
|
||||
HG := $(call qstrip,$(BR2_HG)) $(QUIET)
|
||||
export HG := $(call qstrip,$(BR2_HG)) $(QUIET)
|
||||
SCP := $(call qstrip,$(BR2_SCP)) $(QUIET)
|
||||
SSH := $(call qstrip,$(BR2_SSH)) $(QUIET)
|
||||
LOCALFILES := $(call qstrip,$(BR2_LOCALFILES))
|
||||
@ -161,13 +161,8 @@ endef
|
||||
|
||||
define DOWNLOAD_HG
|
||||
test -e $(DL_DIR)/$($(PKG)_SOURCE) || \
|
||||
(pushd $(DL_DIR) > /dev/null && \
|
||||
rm -rf $($(PKG)_BASE_NAME) && \
|
||||
$(HG) clone --noupdate --rev $($(PKG)_DL_VERSION) $($(PKG)_SITE) $($(PKG)_BASE_NAME) && \
|
||||
$(HG) archive --repository $($(PKG)_BASE_NAME) --type tgz --prefix $($(PKG)_BASE_NAME)/ \
|
||||
--rev $($(PKG)_DL_VERSION) $(DL_DIR)/$($(PKG)_SOURCE) && \
|
||||
rm -rf $($(PKG)_DL_DIR) && \
|
||||
popd > /dev/null)
|
||||
$(EXTRA_ENV) support/download/hg $($(PKG)_SITE) $($(PKG)_DL_VERSION) \
|
||||
$($(PKG)_BASE_NAME) $(DL_DIR)/$($(PKG)_SOURCE)
|
||||
endef
|
||||
|
||||
# TODO: improve to check that the given PKG_DL_VERSION exists on the remote
|
||||
|
25
support/download/hg
Executable file
25
support/download/hg
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
# We want to catch any command failure, and exit immediately
|
||||
set -e
|
||||
|
||||
# Download helper for hg
|
||||
# Call it with:
|
||||
# $1: hg repo
|
||||
# $2: hg cset
|
||||
# $3: package's basename (eg. foobar-1.2.3)
|
||||
# $4: output file
|
||||
# And this environment:
|
||||
# HG : the hg command to call
|
||||
# BR2_DL_DIR: path to Buildroot's download dir
|
||||
|
||||
repo="${1}"
|
||||
cset="${2}"
|
||||
basename="${3}"
|
||||
output="${4}"
|
||||
|
||||
cd "${BR2_DL_DIR}"
|
||||
${HG} clone --noupdate --rev "${cset}" "${repo}" "${basename}"
|
||||
${HG} archive --repository "${basename}" --type tgz --prefix "${basename}" \
|
||||
--rev "${cset}" "${output}"
|
||||
rm -rf "${basename}"
|
Loading…
Reference in New Issue
Block a user