diff options
author | Ismael Luceno | 2011-06-01 00:11:50 -0300 |
---|---|---|
committer | Ismael Luceno | 2011-06-01 00:11:50 -0300 |
commit | 46bbcbf55036ddddabeb7bc0cf7e2114dbd0eb66 (patch) | |
tree | 4cadaf38886f2967ab44b0b23c56d3adaf20fe48 /hg_download.function | |
parent | 0f8003cceee353ec821fb0b6366dca6d29728d8a (diff) |
hg_download.function: hg download handler
Mostly copied from pymsnt.
Diffstat (limited to 'hg_download.function')
-rwxr-xr-x | hg_download.function | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/hg_download.function b/hg_download.function new file mode 100755 index 0000000000..7732c94f1f --- /dev/null +++ b/hg_download.function @@ -0,0 +1,44 @@ +#--------------------------------------------------------------------- +## Handler for downloading from mercurial URLs +#--------------------------------------------------------------------- +function hg_checkout() { + unset URL HG_ROOT HG_MODULE HG_TAG + url_hg_crack $1 + message "${MESSAGE_COLOR}Starting Mercurial checkout of" \ + "${FILE_COLOR}$2${MESSAGE_COLOR}...${DEFAULT_COLOR}" && + if [[ -f $SOURCE_CACHE/$2 ]] + then + message "${MESSAGE_COLOR}Previous source found unpacking...${DEFAULT_COLOR}" && + tar -jxf $SOURCE_CACHE/$2 && + cd ${HG_MODULE} && + message "${MESSAGE_COLOR}Running Mercurial update...${DEFAULT_COLOR}" && + hg pull -u -r ${HG_TAG} + cd .. + message "${MESSAGE_COLOR}Done...${DEFAULT_COLOR}" + else + message "${MESSAGE_COLOR}Running initial Mercurial clone...${DEFAULT_COLOR}" && + hg clone -r${HG_TAG} "http://${HG_ROOT}" ${HG_MODULE} + message "${MESSAGE_COLOR}Done...${DEFAULT_COLOR}" + fi && + message "${MESSAGE_COLOR}Generating tarball...${DEFAULT_COLOR}" && + tar -jcf $2 ${HG_MODULE} && + mv $2 ${SOURCE_CACHE}/$2 && + message "${MESSAGE_COLOR}Mercurial checkout complete...${DEFAULT_COLOR}" +} + +function hg_download() { + hg_checkout "${SOURCE_URL}" "${SOURCE}" + if [ -n "${SOURCE2_URL}" ] + then + hg_checkout "${SOURCE2_URL}" "${SOURCE2}" + fi +} + +function url_hg_crack() { + URL=$(url_strip_prefix "$1" hg_http) + HG_ROOT=$(echo $URL | sed "s#\(^[^/]*[^:]*\):.*#\1#") + local HG_MODULE_TAG=$(echo $URL | sed "s#^[^/]*[^:]*\(.*\)#\1#") + HG_MODULE=$(echo $HG_MODULE_TAG | cut -d : -f2) + local HG_TAGNAME=$(echo $HG_MODULE_TAG | cut -d : -f3) + HG_TAG=${HG_TAGNAME:-tip} +} |