В скрипте запрещено разрешение хука - PullRequest
1 голос
/ 20 февраля 2020

У меня есть следующий хук предварительной фиксации:

#!/bin/bash

set -e

result=''

for file in $(find rest/src/main/groovy/ru/naumen/modules -name '*.groovy' | sort); do
    filename=basename "$file"
    result+=echo "${filename//.groovy/}",
done

result+='smpUtils'

sed -i -r "s|modules = .*|modules = $result|g" rest/smpsync.ini

git add rest/smpsync.ini

Я получаю Permission denied ошибку в строке 8

filename=basename "$file"

И я не могу определить причину этого

У самого Hook есть права на выполнение (chmod +x .git/hooks/pre-commit)

Все дерево каталогов / файлов в ./rest/src/main/groovy/ru/naumen/modules имеет права на чтение / запись и принадлежит моему пользователю.

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Проблема № 1 была упомянута @ Von C в присваивании переменной

filename=basename "$file" -> filename=$(basename "$file")

Проблема № 2 была в строке № 9 (я только что удалил echo):

result+=echo "${filename//.groovy/}", -> result+="${filename//.groovy/}",

1 голос
/ 20 февраля 2020

Попробуйте вместо:

filename="$(basename "$file")"

Чтобы получить результат команды basename в переменной filename.

...