Попытка написать ловушку предварительного приема для репо сервера битбакета.
Репо состоит только из json файлов:
по умолчанию. json
/subdirectory/overwrite.json
Файл по умолчанию. json содержит серию пар ключ / значение, которые перезаписываются. json файл должен иметь точную копию ключа, но не значения .
ie: по умолчанию. json = {myKey: "someValue"}, перезапись. json = {myKey: "someOtherValue"}
когда разработчик совершает перезапись . json ", мне нужно предварительное получение, чтобы сравнить файл с тем, что находится на сервере, чтобы убедиться, что ключи совпадают (не может иметь ключ / значение, которое не определено по умолчанию. json)
Вот код перехвата предварительного приема:
#>******************************************************
while read line
do
echo "[INFO] Reading in stdin"
# if line is not empty
if [[ -n "${line// }" ]]; then
# Split the line into an array.
IFS=' ' read -r -a array <<< "$line"
# This is the standard Git behaviour for pre-receive:
parentsha=${array[0]}
currentsha=${array[1]}
ref=${array[2]}
echo "[INFO] "
echo "[INFO] Current line: "
echo "[INFO] > Parent sha: $parentsha"
echo "[INFO] > Current sha: $currentsha"
echo "[INFO] Ref: $ref"
fi
done
git show
echo "[INFO] END of pre-receive script 21"
exit 0
Приведенный выше код выдает значения sha для изменения, и я могу видеть фактическое изменение файла (ов), но я ' m отныне потеряно для чтения в фактически зафиксированных файлах и как сравнить файлы с тем, что находится на сервере