1set -e
2
3if [ "$#" != 4 ] ; then
4 echo 'usage: hash.sh repo mode name file' >&2
5 exit 2
6fi
7
8repo=$1
9mode=$2
10name=$3
11shift 3
12
13case "$mode" in
1412????)
15 hash=$(printf %s "$1" | git -C "$repo" hash-object -w --stdin) ;;
1610????)
17 hash=$(git -C "$repo" hash-object -w --stdin <"$1") ;;
18*)
19 echo "invalid mode: $mode"
20 exit 1
21esac
22
23printf '%s %s\t%s\n' "$mode" "$hash" "$name"