#!/bin/bash set -euo pipefail os_file_size_bytes() { local f="$1" if stat -f%z "$f" >/dev/null 2>&1; then stat -f%z "$f" else wc -c <"$f" | tr -d ' ' fi } sha256_file() { local f="$1" if command -v shasum >/dev/null 2>&1; then shasum -a 256 "$f" | awk '{print $1}' else # macOS has 'shasum' by default; fallback: openssl dgst -sha256 "$f" | awk '{print $2}' fi }