#!/usr/bin/env sh
# hash-id — 產生完整 40 碼大寫 SHA-1 hash。
# 用法:
#   hash-id <text>
#   printf '%s' <text> | hash-id
# 規則:
#   取完整 SHA-1 四十碼，a-f 轉大寫，不截短、不加前綴。
#   輸入為空即 exit 2。空字串本身也有合法的 SHA-1，靜靜回傳它就會生出
#   一個看起來正常的頁名，把內容寫到沒有人讀的那一頁。
# 結束碼: 0=成功 1=這台機器沒有 sha1sum 也沒有 shasum，算不出雜湊
#         2=用法錯誤：沒有給文字，或給的是空字串
set -eu

input=''
if [ "$#" -gt 0 ]; then
  input=$*
elif [ -t 0 ]; then
  input=''
else
  input=$(cat)
fi

if [ -z "$input" ]; then
  echo 'usage: hash-id <text>' >&2
  exit 2
fi

if command -v sha1sum >/dev/null 2>&1; then
  raw=$(printf '%s' "$input" | sha1sum | awk '{print $1}')
elif command -v shasum >/dev/null 2>&1; then
  raw=$(printf '%s' "$input" | shasum -a 1 | awk '{print $1}')
else
  echo 'no SHA-1 helper found' >&2
  exit 1
fi

printf '%s\n' "$raw" | tr a-f A-F
