diff -Nru grml2usb-0.18.5/debian/changelog grml2usb-0.19.0/debian/changelog --- grml2usb-0.18.5/debian/changelog 2021-01-22 09:32:43.000000000 +0000 +++ grml2usb-0.19.0/debian/changelog 2022-03-21 15:19:54.000000000 +0000 @@ -1,3 +1,17 @@ +grml2usb (0.19.0) unstable; urgency=medium + + [ Manuel Rom ] + * [40221eb] Add Github action workflows for CI/CD + + [ Michael Prokop ] + * [3f77679] Fix vulture usage and add vulture to Build-Depends + * [a6cce22] Github action: do not install virtualenv + + python3-setuptools. Thanks to Chris Hofstaedtler + * [78ae858] grml2iso: support parallel execution + * [8126bbf] grml2iso: execute under pipefail + + -- Michael Prokop Mon, 21 Mar 2022 16:19:54 +0100 + grml2usb (0.18.5) unstable; urgency=medium * [01ed11d] Fix --grub and --syslinux handling. Thanks to Ralf Moll for diff -Nru grml2usb-0.18.5/debian/control grml2usb-0.19.0/debian/control --- grml2usb-0.18.5/debian/control 2020-11-27 16:55:53.000000000 +0000 +++ grml2usb-0.19.0/debian/control 2021-04-24 20:48:13.000000000 +0000 @@ -14,6 +14,7 @@ docbook-xsl, flake8, isort, + vulture, xsltproc, Standards-Version: 4.5.1 Homepage: https://grml.org/grml2usb/ diff -Nru grml2usb-0.18.5/.github/workflows/check-full.yml grml2usb-0.19.0/.github/workflows/check-full.yml --- grml2usb-0.18.5/.github/workflows/check-full.yml 1970-01-01 00:00:00.000000000 +0000 +++ grml2usb-0.19.0/.github/workflows/check-full.yml 2021-04-24 20:48:13.000000000 +0000 @@ -0,0 +1,39 @@ +name: Code Testing + +on: + push: + pull_request: + schedule: + - cron: '42 1 * * *' + +jobs: + codecheck: + runs-on: ubuntu-latest + name: Run codecheck + + steps: + - name: Checkout source + uses: actions/checkout@v2 + + - name: pip install wheel (to make install black work) + run: pip3 install wheel + + - name: pip install flake8, isort + black, vulture + run: pip3 install flake8 isort black vulture + + - name: Codecheck execution + run: make codecheck + + unittests: + runs-on: ubuntu-latest + name: Run unit tests + + steps: + - name: Checkout source + uses: actions/checkout@v2 + + - name: Install pytest + run: pip3 install pytest + + - name: Run Pytest + run: pytest diff -Nru grml2usb-0.18.5/grml2iso grml2usb-0.19.0/grml2iso --- grml2usb-0.18.5/grml2iso 2020-07-18 19:34:53.000000000 +0000 +++ grml2usb-0.19.0/grml2iso 2022-03-11 17:57:29.000000000 +0000 @@ -6,15 +6,15 @@ # License: This file is licensed under the GPL v2 or any later version. ################################################################################ +set -e -o pipefail + # make sure we have the sbin directories in our PATH to find grml2usb ootb PATH="${PATH}:/sbin:/usr/local/sbin:/usr/sbin" # adjust variables if necessary through environment {{{ # path to the grml2usb script you'd like to use - [ -n "$GRML2USB" ] || GRML2USB='grml2usb' -# work directory for creating the filesystem - [ -n "$TMPDIR" ] && WRKDIR="${TMPDIR}/grml2iso.tmp" - [ -n "$WRKDIR" ] || WRKDIR='/tmp/grml2iso.tmp' +[ -n "$GRML2USB" ] || GRML2USB='grml2usb' + # support mkisofs as well as genisoimage if which xorriso >/dev/null 2>&1 ; then MKISOFS='xorriso -as mkisofs' @@ -34,8 +34,6 @@ # }}} # helper stuff {{{ - set -e - usage() { echo >&2 "Usage: $0 [OPTIONS] -o target.iso source1.iso [source2.iso ...]" echo >&2 " @@ -54,10 +52,11 @@ restrictions in the bootprocess only IPs are allowed. Supported protocols are: http and ftp -t Directory Directory that should be used for temporary files - during build. Defaults to /tmp/grml2iso.tmp if unset. + during build, instead of using a temporary directory + created by mktemp(1). Examples: - $0 -s http://192.168.23.42:8000/grml/ -o small.iso grml64-small_2018.12.iso + $0 -s http://192.168.23.42:8000/grml/ -o small.iso grml64-small_2021.07.iso Will generate a file small.iso which tries to download the squashfs file from http://192.168.23.42:8000/grml/ - the squashfs file is placed in the same @@ -95,10 +94,6 @@ GRML2USB_OPTS+=(--bootoptions="fetch=$URI") fi - if [ -n "$WRKDIR" ] ; then - GRML2USB_OPTS+=(--tmpdir="$WRKDIR") - fi - # make sure -o is specified [ -n "$ISOFILE" ] || usage 1 @@ -143,8 +138,16 @@ esac # }}} -# create necessary stuff under WRKDIR {{{ - [ -d "$WRKDIR" ] && WRKDIR_EXISTED='true' || WRKDIR_EXISTED='false' +# ensure to properly set up working directory {{{ + WRKDIR_EXISTED='false' + if [ -z "$WRKDIR" ] ; then + WRKDIR="$(mktemp -d)" + else + [ -d "$WRKDIR" ] && WRKDIR_EXISTED='true' + fi + + GRML2USB_OPTS+=(--tmpdir="$WRKDIR") + rm -rf "$WRKDIR/cddir" "$WRKDIR/grub_tmp" mkdir -p "$WRKDIR/cddir" # }}}} diff -Nru grml2usb-0.18.5/Makefile grml2usb-0.19.0/Makefile --- grml2usb-0.18.5/Makefile 2020-07-18 19:34:53.000000000 +0000 +++ grml2usb-0.19.0/Makefile 2021-04-24 20:48:13.000000000 +0000 @@ -42,6 +42,10 @@ flake8 grml2usb isort --check-only grml2usb black --check grml2usb + vulture grml2usb test/grml2usb_test.py + +test: + pytest # graph: # sudo pycallgraph grml2usb /grml/isos/grml-small_2008.11.iso /dev/sdb1