summaryrefslogtreecommitdiffstats
path: root/hg_download.function
diff options
context:
space:
mode:
authorIsmael Luceno2011-06-01 00:11:50 -0300
committerIsmael Luceno2011-06-01 00:11:50 -0300
commit46bbcbf55036ddddabeb7bc0cf7e2114dbd0eb66 (patch)
tree4cadaf38886f2967ab44b0b23c56d3adaf20fe48 /hg_download.function
parent0f8003cceee353ec821fb0b6366dca6d29728d8a (diff)
hg_download.function: hg download handler
Mostly copied from pymsnt.
Diffstat (limited to 'hg_download.function')
-rwxr-xr-xhg_download.function44
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}
+}