#!/bin/bash

REPORTBUG_VERSION=$(dpkg-query -f '${source:Version}' -W reportbug)


# Depending on whether reportbug is new enough, we either write the output of
# our various commands to a file and attach them to the report (this needs
# reportbug ≥ 6.5.0) or just write them to the body of the bug report.
if dpkg --compare-versions "$REPORTBUG_VERSION" ge "6.5.0"; then

    # We don’t clean up this directory because there is no way to know when
    # reportbug finished running, and reportbug needs the files around.
    # Given that those are just a couple of kilobytes in size and people
    # generally don’t file a lot of bugs, I don’t think it’s a big deal.
    DIR=$(mktemp -d)

    echo "-- BEGIN ATTACHMENTS --" >&3

    # remove highlighting escape codes from systemd-delta output
    systemd-delta --no-pager|sed "s%\x1b[^m]*m%%g" >$DIR/systemd-delta.txt
    echo "$DIR/systemd-delta.txt" >&3

    if [ -d /run/systemd/system ]; then
        systemd-analyze --no-pager dump >$DIR/systemd-analyze-dump.txt
        echo "$DIR/systemd-analyze-dump.txt" >&3
    fi

    if [ -d /var/lib/systemd/deb-systemd-helper-enabled ]; then
        head -n100 $(find /var/lib/systemd/deb-systemd-helper-enabled -type f | tr '\n' ' ') >$DIR/dsh-enabled.txt
        echo "$DIR/dsh-enabled.txt" >&3
    fi

    yesno "Do you want to provide fstab information [Y|n]? " yep
    if [ "$REPLY" = yep ]; then
        echo "/etc/fstab" >&3
    fi

    echo "-- END ATTACHMENTS --" >&3
else
    _header() {
        echo "--------------" >&3
        echo "$1:" >&3
        echo "--------------" >&3
    }

    _header "systemd-delta"
    # remove highlighting escape codes from systemd-delta output
    systemd-delta --no-pager|sed "s%\x1b[^m]*m%%g" >&3

    if [ -d /run/systemd/system ]; then
        echo >&3
        _header "systemd-analyze dump"
        systemd-analyze --no-pager dump >&3
    fi

    if [ -d /var/lib/systemd/deb-systemd-helper-enabled ]; then
        echo >&3
        _header "Contents of /var/lib/systemd/deb-systemd-helper-enabled"
        head -n100 $(find /var/lib/systemd/deb-systemd-helper-enabled -type f | tr '\n' ' ') >&3
    fi
fi
