有一个我不时通过 doxygen 运行的源存储库,它在我的 public_html 目录中生成 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
它比原始脚本更健壮、便携且不那么笨重,同时仍然可以一次通过并且没有竞争条件。