#!/bin/sh set -eu umask 022 cd /srv/web/oob.foo.sh/routeros verbose=false if [ "${1:-}" = "-v" ]; then verbose=true shift fi if [ $# -gt 0 ]; then echo "Usage: $(basename "$0") [-v]" 1>&2 exit 1 fi packageurl="$(curl -sSf "https://mikrotik.com/download" | \ sed -n 's/.*.*/\1/p')" packagename="$(basename "$packageurl")" if [ -f "$packagename" ]; then "$verbose" && echo "Already up to date" exit 0 fi checksum="$(curl -sSf "https://mikrotik.com/download" | \ sed -n 's/.*routeros-[0-9\.]*-arm\.npk<\/td>.*SHA256<\/td>\(.*\)<\/td>.*/\1/p')" echo "Downloading new package '${packagename}'" trap 'rm -f -- "${packagename}.tmp"' EXIT curl -sSf -o "${packagename}.tmp" "$packageurl" if [ "$(sha256sum "${packagename}.tmp" | cut -d " " -f 1)" != "$checksum" ]; then echo "ERR: Checksum check failed, not saving package" 1>&2 exit 1 fi mv "${packagename}.tmp" "$packagename"