
It's able to start them up, the only thing not implemented is generating and verifying keys. And, the key translation for HasExt.
58 lines
1.2 KiB
Bash
Executable file
58 lines
1.2 KiB
Bash
Executable file
#!/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
|
|
return "$(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
|