diff --git a/update-tarball.sh b/update-tarball.sh index b61d758..e414329 100644 --- a/update-tarball.sh +++ b/update-tarball.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash user="tianocore" repo="edk2" @@ -8,21 +8,30 @@ uri="https://github.com/${user}/${repo}" api="${uri/github.com/api.github.com/repos}" tar="${uri/github.com/codeload.github.com}/legacy.tar.gz" -hash=$(curl -s "${api}/git/refs/heads/${branch}" | grep '"sha"' | cut -d'"' -f4) -if test "$hash" = ""; then +if test $# -ge 1; then + hash=$1 + short=$1 +else + hash=$(curl -s "${api}/git/refs/heads/${branch}" | grep '"sha"' | cut -d'"' -f4) + if test "$hash" = ""; then echo "# failed to fetch $branch hash" exit 1 + fi + short=$(echo $hash | sed -e 's/^\(.......\).*/\1/') fi -short=$(echo $hash | sed -e 's/^\(.......\).*/\1/') -date=$(curl -s "${api}/git/commits/$hash" | awk ' - /"committer"/ { c=1 } - /"date"/ { if (c) { print } } -' | cut -d'"' -f4) -date="${date%T*}" -date="${date//-/}" +if test $# = 2; then + date=$2 +else + date=$(curl -s "${api}/git/commits/$hash" | awk ' + /"committer"/ { c=1 } + /"date"/ { if (c) { print } } + ' | cut -d'"' -f4) + date="${date%T*}" + date="${date//-/}" +fi -name="${repo}-${date}-${short}.tar.gz" +name="${repo}-${date}-${short}.tar.xz" if test -f "$name"; then echo "# exists: $name" @@ -41,5 +50,5 @@ echo echo "# cleanup ..." rm -vf ${repo}-*.tar* echo "# fetching $name ..." -curl "$tar/$hash" > "$name" +curl "$tar/$hash" | zcat | xz -9e > "$name" exit 0