ede8d7f
#!/bin/bash
b0c3aff
b0c3aff
user="tianocore"
b0c3aff
repo="edk2"
b0c3aff
branch="master"
b0c3aff
b0c3aff
uri="https://github.com/${user}/${repo}"
b0c3aff
api="${uri/github.com/api.github.com/repos}"
b0c3aff
tar="${uri/github.com/codeload.github.com}/legacy.tar.gz"
b0c3aff
ede8d7f
if test $# -ge 1; then
ede8d7f
  hash=$1
ede8d7f
  short=$1
ede8d7f
else
ede8d7f
  hash=$(curl -s "${api}/git/refs/heads/${branch}" | grep '"sha"' | cut -d'"' -f4)
ede8d7f
  if test "$hash" = ""; then
b0c3aff
	echo "# failed to fetch $branch hash"
b0c3aff
	exit 1
ede8d7f
  fi
ede8d7f
  short=$(echo $hash | sed -e 's/^\(.......\).*/\1/')
b0c3aff
fi
b0c3aff
ede8d7f
if test $# = 2; then
ede8d7f
  date=$2
ede8d7f
else
ede8d7f
  date=$(curl -s "${api}/git/commits/$hash" | awk '
ede8d7f
	  /"committer"/	{ c=1 }
ede8d7f
	  /"date"/	{ if (c) { print } }
ede8d7f
  ' | cut -d'"' -f4)
ede8d7f
  date="${date%T*}"
ede8d7f
  date="${date//-/}"
ede8d7f
fi
b0c3aff
ede8d7f
name="${repo}-${date}-${short}.tar.xz"
b0c3aff
b0c3aff
if test -f "$name"; then
b0c3aff
	echo "# exists: $name"
b0c3aff
	exit 1
b0c3aff
fi
b0c3aff
b0c3aff
echo
b0c3aff
echo "# specfile update: version $date, release $short"
b0c3aff
sed -i.old \
b0c3aff
        -e "s/\(%global edk2_date[ \t]\+\)\(.*\)/\1$date/" \
b0c3aff
        -e "s/\(%global edk2_githash[ \t]\+\)\(.*\)/\1$short/" \
b0c3aff
        edk2.spec
b0c3aff
diff -u edk2.spec.old edk2.spec
b0c3aff
b0c3aff
echo
b0c3aff
echo "# cleanup ..."
b0c3aff
rm -vf ${repo}-*.tar*
b0c3aff
echo "# fetching $name ..."
ede8d7f
curl "$tar/$hash" | zcat | xz -9e > "$name"
b0c3aff
exit 0