]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
kres-gen: improve debugability in case of missing files or symbols
authorPetr Špaček <petr.spacek@nic.cz>
Fri, 21 Jun 2019 10:57:13 +0000 (12:57 +0200)
committerPetr Špaček <petr.spacek@nic.cz>
Wed, 3 Jul 2019 15:28:24 +0000 (17:28 +0200)
daemon/lua/kres-gen.sh

index a8e9d1bb0c0418928468ed8c10a273aa59e8fd0f..92be8d733c175b36d9661f3a14aaaab0aeda2c11 100755 (executable)
@@ -7,15 +7,24 @@ CDEFS="../../scripts/gen-cdefs.sh"
 LIBKRES="${MESON_BUILD_ROOT}/lib/libkres.so"
 KRESD="${MESON_BUILD_ROOT}/daemon/kresd"
 
+for REQFILE in "$CDEFS" "$LIBKRES" "$KRESD"
+do
+       test '!' -s "$REQFILE" -a -r "$REQFILE" \
+               && echo "Required file $REQFILE cannot be read, did you build binaries and shared libraries?" \
+               && exit 1
+done
+
 # Write to kres-gen.lua instead of stdout
 mv kres-gen.lua{,.bak} ||:
-exec 1>&-
-exec 1<>kres-gen.lua
+exec 5<&1-  # move stdout into FD 5
+exec 1<>kres-gen.lua  # replace stdout with file
 
 restore() {
-    exec 1>&-
-    mv kres-gen.lua{.bak,} ||:
-    (>&2 echo "Failed to re-generate kres-gen.lua! Missing debugsymbols?")
+    exec 1>&-  # close stdout redirected into kres-gen.lua
+    exec 1<&5-  # restore original stdout
+    mv -v kres-gen.lua{,.fail} ||:
+    mv -v kres-gen.lua{.bak,} ||:
+    (>&2 echo "Failed to re-generate kres-gen.lua! Missing debugsymbols? Missing shared library?")
 }
 trap restore ERR INT TERM