From: Michael Prokop Date: Fri, 17 Nov 2023 15:57:10 +0000 (+0100) Subject: Merge remote-tracking branch 'origin/pr/245' X-Git-Tag: v0.105~8 X-Git-Url: http://git.grml.org/?a=commitdiff_plain;h=c5357622163341d7364f38d6d2e675e933dcb157;hp=98b64b8ed6e64e005de4fbbcabc0a8ca775ed9f9;p=grml-debootstrap.git Merge remote-tracking branch 'origin/pr/245' --- diff --git a/.github/workflows/pr-review.yml b/.github/workflows/pr-review.yml new file mode 100644 index 0000000..19ea46d --- /dev/null +++ b/.github/workflows/pr-review.yml @@ -0,0 +1,40 @@ +# PR Review workflows. +# The intention is for these to only find *new* issues. + +name: pr-review +on: + pull_request: +jobs: + + shellcheck-code: + name: shellcheck grml-debootstrap + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: shellcheck + uses: reviewdog/action-shellcheck@v1 + with: + github_token: ${{ secrets.github_token }} + reporter: github-pr-review + path: "." + pattern: | + chroot-script + grml-debootstrap + config + tests/shellcheck-stub-debootstrap-variables + check_all_files_with_shebangs: "false" + + shellcheck-tests: + name: shellcheck test scripts + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: shellcheck + uses: reviewdog/action-shellcheck@v1 + with: + github_token: ${{ secrets.github_token }} + reporter: github-pr-review + path: "." + pattern: | + tests/* + check_all_files_with_shebangs: "false" diff --git a/chroot-script b/chroot-script index 3e87597..1bd3abb 100755 --- a/chroot-script +++ b/chroot-script @@ -8,6 +8,7 @@ # GRML_CHROOT_SCRIPT_MARKER - do not remove this line unless you want to keep # this script as /bin/chroot-script on your new installed system ################################################################################ +# shellcheck disable=SC2317 # shellcheck has trouble understanding the code flow in this file # error_handler {{{ if [ "$REPORT_TRAP_ERR" = "yes" ] || [ "$FAIL_TRAP_ERR" = "yes" ]; then @@ -18,9 +19,9 @@ if [ "$REPORT_TRAP_ERR" = "yes" ] || [ "$FAIL_TRAP_ERR" = "yes" ]; then fi # }}} -# shellcheck disable=SC1091 +# shellcheck source=config . /etc/debootstrap/config || exit 1 -# shellcheck disable=SC1091 +# shellcheck source=tests/shellcheck-stub-debootstrap-variables . /etc/debootstrap/variables || exit 1 [ -r /proc/1 ] || mount -t proc none /proc @@ -392,6 +393,7 @@ passwords() fi if [ -n "$ROOTPASSWORD" ] ; then + # shellcheck disable=SC2086 echo root:"$ROOTPASSWORD" | chpasswd $CHPASSWD_OPTION export ROOTPASSWORD='' else @@ -414,6 +416,7 @@ passwords() a='1' b='2' else + # shellcheck disable=SC2086 echo root:"$a" | chpasswd $CHPASSWD_OPTION unset a unset b @@ -601,8 +604,10 @@ initrd() { echo "Generating initrd." if [ "$INITRD_GENERATOR" = 'dracut' ] ; then DEBIAN_FRONTEND=$DEBIAN_FRONTEND $APTINSTALL dracut + # shellcheck disable=SC2086 dracut --no-hostonly --kver "$KERNELVER" --fstab --add-fstab /etc/fstab --force --reproducible $INITRD_GENERATOR_OPTS else + # shellcheck disable=SC2086 update-initramfs -c -t -k "$KERNELVER" $INITRD_GENERATOR_OPTS fi fi @@ -698,9 +703,9 @@ grub_install() { echo "Setting ${GRUB_PACKAGE} debconf configuration for install device to $GRUB" echo "${GRUB_PACKAGE} ${GRUB_PACKAGE}/install_devices multiselect ${grub_device}" | debconf-set-selections - if ! dpkg --list ${GRUB_PACKAGE} 2>/dev/null | grep -q '^ii' ; then + if ! dpkg --list "${GRUB_PACKAGE}" 2>/dev/null | grep -q '^ii' ; then echo "Notice: grub option set but no ${GRUB_PACKAGE} package, installing it therefore." - DEBIAN_FRONTEND=$DEBIAN_FRONTEND $APTINSTALL ${GRUB_PACKAGE} + DEBIAN_FRONTEND=$DEBIAN_FRONTEND $APTINSTALL "${GRUB_PACKAGE}" fi if ! [ -x "$(command -v grub-install)" ] ; then diff --git a/config b/config index ca13b2c..cd562e9 100644 --- a/config +++ b/config @@ -4,6 +4,7 @@ # Bug-Reports: see https://grml.org/bugs/ # License: This file is licensed under the GPL v2 or any later version. ################################################################################ +# shellcheck shell=sh ################################################################################ # Important: adjust this file if you want to execute grml-debootstrap diff --git a/grml-debootstrap b/grml-debootstrap index f52b8cb..8d9e1db 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -5,6 +5,7 @@ # Bug-Reports: see https://grml.org/bugs/ # License: This file is licensed under the GPL v2+ ################################################################################ +# shellcheck disable=SC2001,SC2181 # error_handler {{{ [ -n "$REPORT_TRAP_ERR" ] || REPORT_TRAP_ERR='no' @@ -42,7 +43,7 @@ fi # variables {{{ PN="$(basename "$0")" if [[ -d "$(dirname "$(command -v "$0")")"/.git ]]; then - VERSION="$(git --git-dir $(dirname "$(command -v "$0")")/.git describe | sed 's|^v||')" + VERSION="$(git --git-dir "$(dirname "$(command -v "$0")")"/.git describe | sed 's|^v||')" else VERSION="$(dpkg-query --show --showformat='${Version}' "$PN")" fi @@ -1947,11 +1948,13 @@ iface ${interface} inet dhcp einfo "Installing default /etc/network/interfaces as requested via --defaultinterfaces options." mkdir -p "${MNTPOINT}/etc/network" echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces" + # shellcheck disable=SC2320 eend $? elif [ -n "$VIRTUAL" ] ; then einfo "Setting up Virtual Machine, installing default /etc/network/interfaces" mkdir -p "${MNTPOINT}/etc/network" echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces" + # shellcheck disable=SC2320 eend $? elif [ -r /etc/network/interfaces ] ; then einfo "Copying /etc/network/interfaces from host to target system" @@ -1962,6 +1965,7 @@ iface ${interface} inet dhcp ewarn "Couldn't read /etc/network/interfaces, installing default /etc/network/interfaces" mkdir -p "${MNTPOINT}/etc/network" echo "$DEFAULT_INTERFACES" > "${MNTPOINT}/etc/network/interfaces" + # shellcheck disable=SC2320 eend $? fi diff --git a/tests/shellcheck-stub-debootstrap-variables b/tests/shellcheck-stub-debootstrap-variables new file mode 100644 index 0000000..8fd7606 --- /dev/null +++ b/tests/shellcheck-stub-debootstrap-variables @@ -0,0 +1,7 @@ +# Stub data file for shellcheck runs. +# shellcheck shell=sh +# shellcheck disable=SC2034 # The point of our whole existence is to conflict with SC2034. + +# ARCH is defaulted in grml-debootstrap, so it is never empty. +ARCH=amd64 +