У меня есть исходный репозиторий, который я время от времени запускаю через doxygen, который генерирует html в моем каталоге public_html. Я обнаружил, что мне нужно изменить umask и взломать основную группу в bash, как это работает:
echo "umask $UMASK; doxygen include_config.conf" | newgrp $GROUP
Но это кажется неуклюжим, и я не могу не задаться вопросом, есть ли какой-либо параметр конфигурации или переключатель параметров для doxygen, чтобы установить UID/группу и разрешения непосредственно для всех файлов/каталогов, которые он генерирует? Он так часто используется для создания HTML на веб-сайтах, что почти всем понадобится, например. иметь вывод, удобочитаемый для всего мира. Искал в Интернете, файл конфигурации и справочную страницу безрезультатно.
Обновление: надеялся найти какую-нибудь встроенную функцию, но, похоже, ее нет. После некоторых итераций эта оболочка, кажется, выполняет свою работу:
#!/bin/bash
OUTPUT_PATH=/path/to/output
CONFIG_PATH=/path/to/include_config.conf
GROUP=somegroup
PERM=750
UMASK=027
if [[ ! -e $OUTPUT_PATH ]]; then mkdir $OUTPUT_PATH; fi
chmod $PERM $OUTPUT_PATH
chmod g+s $OUTPUT_PATH
chgrp $GROUP $OUTPUT_PATH
umask $UMASK
doxygen $CONFIG_PATH
Он немного более надежный, портативный и менее громоздкий, чем исходный скрипт, но при этом работает за один проход и без условий гонки.