diff options
author | Frantisek Sumsal <frantisek@sumsal.cz> | 2021-04-19 18:07:51 +0200 |
---|---|---|
committer | Frantisek Sumsal <frantisek@sumsal.cz> | 2021-04-20 18:39:36 +0200 |
commit | 437e889b18743ea4d594521829e43b6067ce9036 (patch) | |
tree | 229a9f49d8d7e54aa2859c8166921e4a43a6230e /src/partition | |
parent | 0084d4f6b58f70c9955fa2259c29d65d87e1e855 (diff) | |
download | systemd-437e889b18743ea4d594521829e43b6067ce9036.tar.gz |
src: shellcheck-ify shell scripts
Diffstat (limited to 'src/partition')
-rwxr-xr-x | src/partition/test-repart.sh | 101 |
1 files changed, 52 insertions, 49 deletions
diff --git a/src/partition/test-repart.sh b/src/partition/test-repart.sh index 3696c3cbd6..8598a99887 100755 --- a/src/partition/test-repart.sh +++ b/src/partition/test-repart.sh @@ -1,25 +1,28 @@ #!/usr/bin/env bash # SPDX-License-Identifier: LGPL-2.1-or-later -set -ex +set -eux +set -o pipefail [[ -e /dev/loop-control ]] || exit 77 -repart=$1 -test -x $repart +repart="${1:?}" +test -x "$repart" -D=$(mktemp --tmpdir --directory "test-repart.XXXXXXXXXX") +D="$(mktemp --tmpdir --directory "test-repart.XXXXXXXXXX")" + +# shellcheck disable=SC2064 trap "rm -rf '$D'" EXIT INT QUIT PIPE -mkdir -p $D/definitions +mkdir -p "$D/definitions" SEED=e2a40bf9-73f1-4278-9160-49c031e7aef8 echo "### Testing systemd-repart --empty=create ###" -$repart $D/zzz --empty=create --size=1G --seed=$SEED +"$repart" "$D/zzz" --empty=create --size=1G --seed="$SEED" -sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/empty +sfdisk -d "$D/zzz" | grep -v -e 'sector-size' -e '^$' >"$D/empty" -cmp $D/empty - <<EOF +cmp "$D/empty" - <<EOF label: gpt label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D device: $D/zzz @@ -30,32 +33,32 @@ EOF echo "### Testing with root, root2, home, & swap ###" -cat >$D/definitions/root.conf <<EOF +cat >"$D/definitions/root.conf" <<EOF [Partition] Type=root-x86-64 EOF -ln -s root.conf $D/definitions/root2.conf +ln -s root.conf "$D/definitions/root2.conf" -cat >$D/definitions/home.conf <<EOF +cat >"$D/definitions/home.conf" <<EOF [Partition] Type=home Label=home-first Label=home-always-too-long-xxxxxxxxxxxxxx-%v EOF -cat >$D/definitions/swap.conf <<EOF +cat >"$D/definitions/swap.conf" <<EOF [Partition] Type=swap SizeMaxBytes=64M PaddingMinBytes=92M EOF -$repart $D/zzz --dry-run=no --seed=$SEED --definitions=$D/definitions +"$repart" "$D/zzz" --dry-run=no --seed="$SEED" --definitions="$D/definitions" -sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated +sfdisk -d "$D/zzz" | grep -v -e 'sector-size' -e '^$' >"$D/populated" -cmp $D/populated - <<EOF +cmp "$D/populated" - <<EOF label: gpt label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D device: $D/zzz @@ -70,27 +73,27 @@ EOF echo "### Testing with root, root2, home, swap, & another partition ###" -cat >$D/definitions/swap.conf <<EOF +cat >"$D/definitions/swap.conf" <<EOF [Partition] Type=swap SizeMaxBytes=64M EOF -cat >$D/definitions/extra.conf <<EOF +cat >"$D/definitions/extra.conf" <<EOF [Partition] Type=linux-generic Label=custom_label UUID=a0a1a2a3a4a5a6a7a8a9aaabacadaeaf EOF -echo "Label=ignored_label" >>$D/definitions/home.conf -echo "UUID=b0b1b2b3b4b5b6b7b8b9babbbcbdbebf" >>$D/definitions/home.conf +echo "Label=ignored_label" >>"$D/definitions/home.conf" +echo "UUID=b0b1b2b3b4b5b6b7b8b9babbbcbdbebf" >>"$D/definitions/home.conf" -$repart $D/zzz --dry-run=no --seed=$SEED --definitions=$D/definitions +"$repart" "$D/zzz" --dry-run=no --seed="$SEED" --definitions="$D/definitions" -sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated2 +sfdisk -d "$D/zzz" | grep -v -e 'sector-size' -e '^$' >"$D/populated2" -cmp $D/populated2 - <<EOF +cmp "$D/populated2" - <<EOF label: gpt label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D device: $D/zzz @@ -106,11 +109,11 @@ EOF echo "### Resizing to 2G ###" -$repart $D/zzz --size=2G --dry-run=no --seed=$SEED --definitions=$D/definitions +"$repart" "$D/zzz" --size=2G --dry-run=no --seed="$SEED" --definitions="$D/definitions" -sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated3 +sfdisk -d "$D/zzz" | grep -v -e 'sector-size' -e '^$' >"$D/populated3" -cmp $D/populated3 - <<EOF +cmp "$D/populated3" - <<EOF label: gpt label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D device: $D/zzz @@ -124,11 +127,11 @@ $D/zzz4 : start= 1777624, size= 131072, type=0657FD6D-A4AB-43C4-84E5-09 $D/zzz5 : start= 1908696, size= 2285568, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=A0A1A2A3-A4A5-A6A7-A8A9-AAABACADAEAF, name="custom_label" EOF -dd if=/dev/urandom of=$D/block-copy bs=4096 count=10240 +dd if=/dev/urandom of="$D/block-copy" bs=4096 count=10240 echo "### Testing with root, root2, home, swap, another partition, & partition copy ###" -cat >$D/definitions/extra2.conf <<EOF +cat >"$D/definitions/extra2.conf" <<EOF [Partition] Type=linux-generic Label=block-copy @@ -136,11 +139,11 @@ UUID=2a1d97e1d0a346cca26eadc643926617 CopyBlocks=$D/block-copy EOF -$repart $D/zzz --size=3G --dry-run=no --seed=$SEED --definitions=$D/definitions +"$repart" "$D/zzz" --size=3G --dry-run=no --seed="$SEED" --definitions="$D/definitions" -sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated4 +sfdisk -d "$D/zzz" | grep -v -e 'sector-size' -e '^$' >"$D/populated4" -cmp $D/populated4 - <<EOF +cmp "$D/populated4" - <<EOF label: gpt label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D device: $D/zzz @@ -155,14 +158,14 @@ $D/zzz5 : start= 1908696, size= 2285568, type=0FC63DAF-8483-4772-8E79-3D $D/zzz6 : start= 4194264, size= 2097152, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=2A1D97E1-D0A3-46CC-A26E-ADC643926617, name="block-copy" EOF -cmp --bytes=41943040 --ignore-initial=0:$((512*4194264)) $D/block-copy $D/zzz +cmp --bytes=41943040 --ignore-initial=0:$((512*4194264)) "$D/block-copy" "$D/zzz" -if [ `id -u` == 0 ] && type -P cryptsetup diff losetup > /dev/null ; then +if [ "$(id -u)" -eq 0 ] && type -P cryptsetup diff losetup >/dev/null ; then echo "### Testing Format=/Encrypt=/CopyFiles=" # These tests require privileges unfortunately - cat >$D/definitions/extra3.conf <<EOF + cat >"$D/definitions/extra3.conf" <<EOF [Partition] Type=linux-generic Label=luks-format-copy @@ -173,11 +176,11 @@ CopyFiles=$D/definitions:/def SizeMinBytes=48M EOF - $repart $D/zzz --size=auto --dry-run=no --seed=$SEED --definitions=$D/definitions + "$repart" "$D/zzz" --size=auto --dry-run=no --seed="$SEED" --definitions="$D/definitions" - sfdisk -d $D/zzz | grep -v -e 'sector-size' -e '^$' >$D/populated5 + sfdisk -d "$D/zzz" | grep -v -e 'sector-size' -e '^$' >"$D/populated5" - cmp $D/populated5 - <<EOF + cmp "$D/populated5" - <<EOF label: gpt label-id: EF7F7EE2-47B3-4251-B1A1-09EA8BF12D5D device: $D/zzz @@ -193,23 +196,23 @@ $D/zzz6 : start= 4194264, size= 2097152, type=0FC63DAF-8483-4772-8E79-3D $D/zzz7 : start= 6291416, size= 98304, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=7B93D1F2-595D-4CE3-B0B9-837FBD9E63B0, name="luks-format-copy" EOF - LOOP=`losetup -P --show --find $D/zzz` - VOLUME=test-repart-$RANDOM + LOOP="$(losetup -P --show --find "$D/zzz")" + VOLUME="test-repart-$RANDOM" - touch $D/empty-password - cryptsetup open --type=luks2 --key-file=$D/empty-password ${LOOP}p7 $VOLUME - mkdir $D/mount - mount -t ext4 /dev/mapper/$VOLUME $D/mount + touch "$D/empty-password" + cryptsetup open --type=luks2 --key-file="$D/empty-password" "${LOOP}p7" "$VOLUME" + mkdir "$D/mount" + mount -t ext4 "/dev/mapper/$VOLUME" "$D/mount" # Use deferred closing on the mapper and autoclear on the loop, so they are cleaned up on umount - cryptsetup close --deferred $VOLUME - losetup -d $LOOP - diff -r $D/mount/def $D/definitions > /dev/null - umount $D/mount + cryptsetup close --deferred "$VOLUME" + losetup -d "$LOOP" + diff -r "$D/mount/def" "$D/definitions" >/dev/null + umount "$D/mount" else echo "### Skipping Format=/Encrypt=/CopyFiles= test, lacking privileges or missing cryptsetup/diff/losetup" fi echo "### Testing json output ###" -$repart $D/zzz --size=3G --dry-run=no --seed=$SEED --definitions=$D/definitions --json=help -$repart $D/zzz --size=3G --dry-run=no --seed=$SEED --definitions=$D/definitions --json=pretty -$repart $D/zzz --size=3G --dry-run=no --seed=$SEED --definitions=$D/definitions --json=short +"$repart" "$D/zzz" --size=3G --dry-run=no --seed="$SEED" --definitions="$D/definitions" --json=help +"$repart" "$D/zzz" --size=3G --dry-run=no --seed="$SEED" --definitions="$D/definitions" --json=pretty +"$repart" "$D/zzz" --size=3G --dry-run=no --seed="$SEED" --definitions="$D/definitions" --json=short |