summaryrefslogtreecommitdiff
path: root/src/partition
diff options
context:
space:
mode:
authorFrantisek Sumsal <frantisek@sumsal.cz>2021-04-19 18:07:51 +0200
committerFrantisek Sumsal <frantisek@sumsal.cz>2021-04-20 18:39:36 +0200
commit437e889b18743ea4d594521829e43b6067ce9036 (patch)
tree229a9f49d8d7e54aa2859c8166921e4a43a6230e /src/partition
parent0084d4f6b58f70c9955fa2259c29d65d87e1e855 (diff)
downloadsystemd-437e889b18743ea4d594521829e43b6067ce9036.tar.gz
src: shellcheck-ify shell scripts
Diffstat (limited to 'src/partition')
-rwxr-xr-xsrc/partition/test-repart.sh101
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