File size: 1,084 Bytes
fb6457c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
# Compute SHA-256 hash of binary and verify reproducibility

set -e

BINARY_PATH="${1:-./bin/BSH_Engine.bin}"

if [ ! -f "$BINARY_PATH" ]; then
    echo "Error: Binary not found: $BINARY_PATH"
    exit 1
fi

echo "============================================"
echo "SHA-256 Hash Computation"
echo "============================================"

# Try different hash commands
if command -v sha256sum >/dev/null 2>&1; then
    HASH=$(sha256sum "$BINARY_PATH" | awk '{print $1}')
elif command -v shasum >/dev/null 2>&1; then
    HASH=$(shasum -a 256 "$BINARY_PATH" | awk '{print $1}')
elif command -v openssl >/dev/null 2>&1; then
    HASH=$(openssl dgst -sha256 "$BINARY_PATH" | awk '{print $NF}')
else
    echo "Error: No SHA-256 utility found"
    exit 1
fi

SIZE=$(stat -c%s "$BINARY_PATH" 2>/dev/null || stat -f%z "$BINARY_PATH")

echo "Binary: $BINARY_PATH"
echo "Size: $SIZE bytes"
echo "SHA-256: $HASH"
echo "============================================"

# Store hash for reproducibility check
mkdir -p .build-cache
echo "$HASH" > .build-cache/last_hash.txt

exit 0