File: git-annex-backend-XFOO

package info (click to toggle)
git-annex 10.20230126-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 69,344 kB
  • sloc: haskell: 74,654; javascript: 9,103; sh: 1,304; makefile: 203; perl: 136; ansic: 44
file content (58 lines) | stat: -rwxr-xr-x 1,190 bytes parent folder | download | duplicates (5)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/sh
# Demo git-annex external backend program.
# 
# Install in PATH as git-annex-backend-XFOO
#
# Copyright 2020 Joey Hess; licenced under the GNU GPL version 3 or higher.

set -e

hashfile () {
	local contentfile="$1"
	# could send PROGRESS while doing this, but it's
	# hard to implement that in shell
	md5sum "$contentfile" | cut -d ' ' -f 1 || echo ''
}

while read line; do
	set -- $line
	case "$1" in
		GETVERSION)
			echo VERSION 1
		;;
		CANVERIFY)
			echo CANVERIFY-YES
		;;
		ISSTABLE)
			echo ISSTABLE-YES
		;;
		ISCRYPTOGRAPHICALLYSECURE)
			# md5 is not cryptographically secure
			echo ISCRYPTOGRAPHICALLYSECURE-NO
		;;
		GENKEY)
			contentfile="$2"
			hash=$(hashfile "$contentfile")
			sz=$(wc -c "$contentfile" | cut -d ' ' -f 1)
			if [ -n "$hash" ]; then
				echo "GENKEY-SUCCESS" "XFOO-s$sz--$hash"
			else
				echo "GENKEY-FAILURE" "md5sum failed"
			fi
		;;
		VERIFYKEYCONTENT)
			key="$2"
			contentfile="$3"
			hash=$(hashfile "$contentfile")
			khash=$(echo "$key" | sed 's/.*--//')
			if [ "$hash" = "$khash" ]; then
				echo "VERIFYKEYCONTENT-SUCCESS"
			else
				echo "VERIFYKEYCONTENT-FAILURE"
			fi
		;;
		*)
			echo ERROR protocol error
		;;
	esac
done