diff options
-rwxr-xr-x | Base/root/generate_manpages.sh | 19 | ||||
-rwxr-xr-x | Meta/export-argsparser-manpages.sh | 13 |
2 files changed, 28 insertions, 4 deletions
diff --git a/Base/root/generate_manpages.sh b/Base/root/generate_manpages.sh index 9c07033ffa..4c3eb69559 100755 --- a/Base/root/generate_manpages.sh +++ b/Base/root/generate_manpages.sh @@ -5,7 +5,20 @@ export ARGSPARSER_EMIT_MARKDOWN=1 # Qemu likes to start us in the middle of a line, so: echo -rm -rf generated_manpages || exit 1 +ERROR_FILE="generate_manpages_error.log" +rm -f "$ERROR_FILE" + +exit_for_error() +{ + if test $DO_SHUTDOWN_AFTER_GENERATE { + touch "$ERROR_FILE" # Ensure it exists, in case there wasn't any stderr output. + shutdown -n + } else { + exit 1 + } +} + +rm -rf generated_manpages 2> "$ERROR_FILE" || exit_for_error for i in ( \ (UserspaceEmulator 1) \ @@ -36,8 +49,8 @@ for i in ( \ filename="generated_manpages/man$i[1]/$i[0].md" mkdir -p "generated_manpages/man$i[1]" echo "Generating for $i[0] in $filename ..." - $i[0] --help > "$filename" || exit 1 - echo -e "\n<!-- Auto-generated through ArgsParser -->" >> "$filename" || exit 1 + $i[0] --help > "$filename" 2> "$ERROR_FILE" || exit_for_error + echo -e "\n<!-- Auto-generated through ArgsParser -->" >> "$filename" 2> "$ERROR_FILE" || exit_for_error } echo "Successful." diff --git a/Meta/export-argsparser-manpages.sh b/Meta/export-argsparser-manpages.sh index 8e56804fde..ea587a9c8b 100755 --- a/Meta/export-argsparser-manpages.sh +++ b/Meta/export-argsparser-manpages.sh @@ -54,9 +54,20 @@ export SERENITY_KERNEL_CMDLINE="graphics_subsystem_mode=off panic=shutdown syste ninja -C "$BUILD_DIR" -- run | sed -re 's,''c,,' echo -echo "Extracting generated manpages ..." mkdir fsmount sudo mount -t ext2 -o loop,rw "$BUILD_DIR"/_disk_image fsmount + +if sudo test -f "fsmount/root/generate_manpages_error.log"; then + echo ":^( Generating manpages failed, error log:" + sudo cat fsmount/root/generate_manpages_error.log + + sudo umount fsmount + rmdir fsmount + + exit 1 +fi + +echo "Extracting generated manpages ..." # 'cp' would create the new files as root, but we don't want that. sudo tar -C fsmount/root/generated_manpages --create . | tar -C Base/usr/share/man/ --extract sudo umount fsmount |