Files

53 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
if [[ "${TRACE-0}" == "1" ]]; then
set -o xtrace
fi
LATEST_VERSION=""
if [[ "${1-}" =~ ^-*h(elp)?$ ]]; then
echo 'Usage: hack/make/portfile github.com/blacktop/ports
This script updates Portfile to latest version.
'
exit
fi
get_version() {
LATEST_VERSION=$(gh release view --json tagName --template '{{ slice .tagName 1 }}')
echo " [!] Updating to version: $LATEST_VERSION"
}
main() {
REPO="$1"
PORTFILE="$REPO/security/ipsw/Portfile"
gh release download --archive=tar.gz --dir /tmp --skip-existing
get_version
sed -i '' "s/github.com\/blacktop\/ipsw .* v/github.com\/blacktop\/ipsw ${LATEST_VERSION} v/" ${PORTFILE}
RMD160=$(openssl dgst -rmd160 /tmp/ipsw-$LATEST_VERSION.tar.gz | awk '{print $2}')
echo " [!] Updating rmd160 to ${RMD160}"
sed -i '' "s|rmd160 .* \\\|rmd160 ${RMD160} \\\|" ${PORTFILE}
SHA256=$(openssl dgst -sha256 /tmp/ipsw-$LATEST_VERSION.tar.gz | awk '{print $2}')
echo " [!] Updating sha256 to $SHA256"
sed -i '' "s|sha256 .* \\\|sha256 ${SHA256} \\\|" ${PORTFILE}
SIZE=$(stat -f '%z' /tmp/ipsw-$LATEST_VERSION.tar.gz)
echo " [!] Updating size to $SIZE"
sed -i '' "s|size .*|size ${SIZE}|" ${PORTFILE}
echo " [!] Pushing update..."
cd $REPO
git commit -am "ipsw: update to $LATEST_VERSION"
git push
}
main "$@"