signed-commit remote shell (see also https://github.com/dyne/scorsh)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.6 KiB
60 lines
1.6 KiB
#!/bin/sh
|
|
|
|
. ./scorsh_functions
|
|
|
|
LINE_FILE=.line_file
|
|
cd ${SCORSH_APP}
|
|
LAST_LINE=$(wc -l scorsh.log | cut -d " " -f 1)
|
|
echo ${LAST_LINE} > ${LINE_FILE}
|
|
cd - > /dev/null
|
|
|
|
### create an empty git commit without a scorsh-command the first
|
|
### commit will be ignored by scorsh for the moment, due to an error
|
|
### on the 0000...0000 oid
|
|
cd ${LOCAL_REPO}
|
|
git commit --allow-empty -m "this is an empty commit"
|
|
check "[ $? -eq 0 ]" $0 "create_first_commit"
|
|
|
|
LAST_LINE=$(cat ${SCORSH_APP}/${LINE_FILE})
|
|
git push
|
|
|
|
cd - > /dev/null
|
|
|
|
cd ${SCORSH_APP}
|
|
ret=$(tail -n +${LAST_LINE} scorsh.log | grep -c "Invalid commit ID")
|
|
sleep 1
|
|
LAST_LINE=$(wc -l scorsh.log | cut -d " " -f 1)
|
|
echo ${LAST_LINE} > ${LINE_FILE}
|
|
cd - > /dev/null
|
|
|
|
check "[ \"$ret\" = \"2\" ] " $0 "check_first_commit"
|
|
|
|
### create two more commits without scorsh-commands
|
|
cd ${LOCAL_REPO}
|
|
git commit --allow-empty -m "second commit"
|
|
check "[ $? -eq 0 ]" $0 "create_second_commit"
|
|
git commit --allow-empty -m "third commit"
|
|
check "[ $? -eq 0 ]" $0 "create_third_commit"
|
|
|
|
LAST_LINE=$(cat ${SCORSH_APP}/${LINE_FILE})
|
|
commits=$(git log | grep "^commit " | cut -d " " -f 2 | head -2)
|
|
message_id=$(git push | grep "remote: id:" | cut -d " " -f 3)
|
|
cd - > /dev/null
|
|
|
|
cd ${SCORSH_APP}
|
|
sleep 1
|
|
for c in ${commits}; do
|
|
ret=$(tail -n +${LAST_LINE} scorsh.log | grep -c "error parsing commit ${c}: no SCORSH message found")
|
|
check "[ \"$ret\" = \"2\" ]" $0 "process_empty_commit"
|
|
done
|
|
|
|
LAST_LINE=$(wc -l scorsh.log | cut -d " " -f 1)
|
|
echo ${LAST_LINE} > ${LINE_FILE}
|
|
cd - > /dev/null
|
|
|
|
|
|
##check_fatal "[ 1 -eq 0 ]" $0 "abort_on_purpose"
|
|
|
|
rm ${LINE_FILE}
|
|
|
|
return_results
|
|
|