summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xBase/root/generate_manpages.sh19
-rwxr-xr-xMeta/export-argsparser-manpages.sh13
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