Commit 2fd4b959 authored by Yann E. MORIN's avatar Yann E. MORIN Committed by Peter Korsgaard
Browse files

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: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: default avatarSamuel Martin <s.martin49@gmail.com>
Tested-by: default avatarThomas 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: default avatarPeter Korsgaard <peter@korsgaard.com>
parent f4526c05
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -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

support/download/hg

0 → 100755
+25 −0
Original line number Diff line number Diff line
#!/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}"