diff options
Diffstat (limited to 'scripts/common.sh')
-rw-r--r-- | scripts/common.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/common.sh b/scripts/common.sh new file mode 100644 index 0000000000..d7653c6aa1 --- /dev/null +++ b/scripts/common.sh @@ -0,0 +1,37 @@ +pkgroot="$(pwd)" +deps="$pkgroot/.deps" +prefix="$deps/usr" +export PATH="$prefix/bin:$PATH" + +download() { + local url=$1 + local tgt=$2 + local sha1=$3 + + if [ ! -d "$tgt" ]; then + mkdir -p "$tgt" + if which wget > /dev/null 2>&1; then + tmp_dir=$(mktemp -d "/tmp/download_sha1check_XXXXXXX") + fifo="$tmp_dir/fifo" + mkfifo "$fifo" + # download, untar and calculate sha1 sum in one pass + (wget "$url" -O - | tee "$fifo" | \ + (cd "$tgt"; tar --strip-components=1 -xvzf -)) & + sum=$(sha1sum < "$fifo" | cut -d ' ' -f1) + rm -rf "$tmp_dir" + if [ "$sum" != "$sha1" ]; then + echo "SHA1 sum doesn't match, expected '$sha1' got '$sum'" + exit 1 + fi + else + echo "Missing wget utility" + exit 1 + fi + fi +} + +github_download() { + local repo=$1 + local ver=$2 + download "https://github.com/${repo}/archive/${ver}.tar.gz" "$3" "$4" +} |