]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
mkosi: Reduce postinst script indentation 26518/head
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 21 Feb 2023 14:23:15 +0000 (15:23 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 21 Feb 2023 14:23:15 +0000 (15:23 +0100)
mkosi.postinst

index 0a6946e6002030765bb84e769db95e8ab19d86e4..43cc818393a245ac592e335f5920a14fb2ef6ea1 100755 (executable)
@@ -1,13 +1,16 @@
 #!/bin/sh
 # SPDX-License-Identifier: LGPL-2.1-or-later
 
-if [ "$1" = "final" ]; then
-    if [ -n "$SANITIZERS" ]; then
-        LD_PRELOAD=$(ldd /usr/lib/systemd/systemd | grep libasan.so | awk '{print $3}')
+if [ "$1" = "build" ]; then
+    exit 0
+fi
+
+if [ -n "$SANITIZERS" ]; then
+    LD_PRELOAD=$(ldd /usr/lib/systemd/systemd | grep libasan.so | awk '{print $3}')
 
-        mkdir -p /etc/systemd/system.conf.d
+    mkdir -p /etc/systemd/system.conf.d
 
-        cat >/etc/systemd/system.conf.d/10-asan.conf <<EOF
+    cat >/etc/systemd/system.conf.d/10-asan.conf <<EOF
 [Manager]
 ManagerEnvironment=ASAN_OPTIONS=$MKOSI_ASAN_OPTIONS\\
                    UBSAN_OPTIONS=$MKOSI_UBSAN_OPTIONS\\
@@ -17,49 +20,48 @@ DefaultEnvironment=ASAN_OPTIONS=$MKOSI_ASAN_OPTIONS\\
                    LD_PRELOAD=$LD_PRELOAD
 EOF
 
-        # ASAN logs to stderr by default. However, journald's stderr is connected to /dev/null, so we lose
-        # all the ASAN logs. To rectify that, let's connect journald's stdout to the console so that any
-        # sanitizer failures appear directly on the user's console.
-        mkdir -p /etc/systemd/system/systemd-journald.service.d
-        cat >/etc/systemd/system/systemd-journald.service.d/10-stdout-tty.conf <<EOF
+    # ASAN logs to stderr by default. However, journald's stderr is connected to /dev/null, so we lose
+    # all the ASAN logs. To rectify that, let's connect journald's stdout to the console so that any
+    # sanitizer failures appear directly on the user's console.
+    mkdir -p /etc/systemd/system/systemd-journald.service.d
+    cat >/etc/systemd/system/systemd-journald.service.d/10-stdout-tty.conf <<EOF
 [Service]
 StandardOutput=tty
 EOF
 
-        # Both systemd and util-linux's login call vhangup() on /dev/console which disconnects all users.
-        # This means systemd-journald can't log to /dev/console even if we configure `StandardOutput=tty`. As
-        # a workaround, we modify console-getty.service to disable systemd's vhangup() and disallow login
-        # from calling vhangup() so that journald's ASAN logs correctly end up in the console.
+    # Both systemd and util-linux's login call vhangup() on /dev/console which disconnects all users.
+    # This means systemd-journald can't log to /dev/console even if we configure `StandardOutput=tty`. As
+    # a workaround, we modify console-getty.service to disable systemd's vhangup() and disallow login
+    # from calling vhangup() so that journald's ASAN logs correctly end up in the console.
 
-        mkdir -p /etc/systemd/system/console-getty.service.d
-        cat >/etc/systemd/system/console-getty.service.d/10-no-vhangup.conf <<EOF
+    mkdir -p /etc/systemd/system/console-getty.service.d
+    cat >/etc/systemd/system/console-getty.service.d/10-no-vhangup.conf <<EOF
 [Service]
 TTYVHangup=no
 CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG
 EOF
-        # ASAN and syscall filters aren't compatible with each other.
-        find / -name '*.service' -type f -exec sed -i 's/^\(MemoryDeny\|SystemCall\)/# \1/' {} +
+    # ASAN and syscall filters aren't compatible with each other.
+    find / -name '*.service' -type f -exec sed -i 's/^\(MemoryDeny\|SystemCall\)/# \1/' {} +
 
-        # `systemd-hwdb update` takes > 50s when built with sanitizers so let's not run it by default.
-        systemctl mask systemd-hwdb-update.service
-    fi
+    # `systemd-hwdb update` takes > 50s when built with sanitizers so let's not run it by default.
+    systemctl mask systemd-hwdb-update.service
+fi
 
-    # Make sure dnsmasq.service doesn't start on boot on Debian/Ubuntu.
-    rm -f /etc/systemd/system/multi-user.target.wants/dnsmasq.service
+# Make sure dnsmasq.service doesn't start on boot on Debian/Ubuntu.
+rm -f /etc/systemd/system/multi-user.target.wants/dnsmasq.service
 
-    if [ -n "$IMAGE_ID" ] ; then
-        sed -n \
-            -i \
-            -e '/^IMAGE_ID=/!p' \
-            -e "\$aIMAGE_ID=$IMAGE_ID" \
-            /usr/lib/os-release
-    fi
+if [ -n "$IMAGE_ID" ] ; then
+    sed -n \
+        -i \
+        -e '/^IMAGE_ID=/!p' \
+        -e "\$aIMAGE_ID=$IMAGE_ID" \
+        /usr/lib/os-release
+fi
 
-    if [ -n "$IMAGE_VERSION" ] ; then
-        sed -n \
-            -i \
-            -e '/^IMAGE_VERSION=/!p' \
-            -e "\$aIMAGE_VERSION=$IMAGE_VERSION" \
-            /usr/lib/os-release
-    fi
+if [ -n "$IMAGE_VERSION" ] ; then
+    sed -n \
+        -i \
+        -e '/^IMAGE_VERSION=/!p' \
+        -e "\$aIMAGE_VERSION=$IMAGE_VERSION" \
+        /usr/lib/os-release
 fi