summaryrefslogtreecommitdiff
path: root/scripts/hash.sh
blob: 6e2c4462f10635160c7f790357a35594e07f7e50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
set -e

if [ "$#" != 4 ] ; then
	echo 'usage: hash.sh repo mode name file' >&2
	exit 2
fi

repo=$1
mode=$2
name=$3
shift 3

case "$mode" in
12????)
	hash=$(printf %s "$1" | git -C "$repo" hash-object -w --stdin) ;;
10????)
	hash=$(git -C "$repo" hash-object -w --stdin <"$1") ;;
*)
	echo "invalid mode: $mode"
	exit 1
esac

printf '%s %s\t%s\n' "$mode" "$hash" "$name"