#699 PR merged: Added separated debugscripts option and first steps so that 'set -eu' works

Labels: enhancement, cleanup, fixed / solved / done

jsmeix opened issue at 2015-11-18 15:31:

This is a huge pull request with lots of things in it.

Its initial intent was https://github.com/rear/rear/issues/688
by adding a separated debugscripts option so that e.g.

rear --debugscripts 'ue +h -o pipefail' help

now works as an initial proof of concept that rear can be
made working with things like 'set -eu'.

Because my final goal behind https://github.com/rear/rear/issues/688
is to make rear working with things like 'set -ue -o pipefail' I like
to have as a precondition support for advanced debugging settings
built-in in rear (instead of manually modifying the scripts).

While I implemented the debugscripts option I tested how it works
with things like

rear --debugscripts 'xvue -o pipefail' help

and during this testing I fixed all what fails in the rear scripts.

Unfortunately because of this that pull request here is big and implements three things at once:

The new debugscripts option which is fully backward compatible because the behaviour of the other options does not change.

I fixed all what fails because of 'set -ue -o pipefail' for the "help" workflow as a very first step into that direction.

When I was working on a particular piece of code I also changed it as needed to be better in compliance with the "Coding Style" at

If you agree with what I did here, I will continue to make rear working with 'set -ue -o pipefail' step by step also for other workflows.

In any case I would very much appreciate it if you carefully check what I changed.

I assume at least in some cases you may wonder about the code before and afterwards - in this case please ask me - I think there are several places in the code where it is not clear what is actually meant so that I could have made plain wrong changes because I failed to understand what the actual intent is of a particular code.

Many thanks in advance for your review!

jsmeix commented at 2015-11-18 15:55:

I forgot:

For me also e.g. "rear -d -D mkrescue" still works so that for me it does not seem to be totally broken what I did - nevertheless I appreciate a careful review.

# rear -d -D mkrescue
Relax-and-Recover 1.17.2 / Git
Using log file: /var/log/rear/rear-nelson.log
Creating disk layout
Creating root filesystem layout
Copying files and directories
Copying binaries and libraries
Copying kernel modules
Creating initramfs
Making ISO image
Wrote ISO image: /var/lib/rear/output/rear-nelson.iso (48M)
You should also rm -Rf /tmp/rear.6oUBR6qZbKp0XT5
# echo $?

jsmeix commented at 2015-11-18 16:16:

Regarding make rear working with ''set -ue -o pipefail"
I created https://github.com/rear/rear/issues/700

jsmeix commented at 2015-11-19 10:38:


Right now I tested on a SLES12-SP1 KVM/Qemu virtual machine
with 2.5TB virtual harddisk using SUSE's special 'gpt_sync_mbr'
and SLES12-SP1 default btrfs and xfs for /home that

rear -d -D mkbackup


rear -d -D recover

still "just work" for me.

jsmeix commented at 2015-11-25 12:56:

This particular pull request is done (i.e. "fixed").

[Export of Github issue for rear/rear.]