#!/bin/bash

path=${1?Need path to check}

sumcmd=sha384sum
prefix=sha384

if [[ $2 ]]; then
    case $2 in
        256|sha256)
            sumcmd=sha256sum
            prefix=sha256
            ;;
        384|sha384)
            sumcmd=sha384sum
            prefix=sha384
            ;;
        512|sha512)
            sumcmd=sha512sum
            prefix=sha512
            ;;
        *)
            echo "unknown sha type"
            exit 2
            ;;
    esac
fi
fmt="integrity=\"$prefix-%s\"\n"

if [[ -f $path ]]; then
    printf "$fmt" "$($sumcmd -b $path | xxd -r -p | base64)"
else
    printf "$fmt" "$(curl -s "$path" | $sumcmd -b | xxd -r -p | base64)"
fi
