summaryrefslogtreecommitdiffstats
path: root/core/rootfs/rootfs-stage32/data
diff options
context:
space:
mode:
authorSimon Rettberg2018-03-26 11:37:28 +0200
committerSimon Rettberg2018-03-26 11:37:28 +0200
commit3f22158beb930cc341306352aa0a4ad3b50e7b27 (patch)
tree63a64c43356cd4aae30842d78f7d1303d66a79a0 /core/rootfs/rootfs-stage32/data
parent[rfs-stage32] slxlog: Fix some code issues (diff)
downloadmltk-3f22158beb930cc341306352aa0a4ad3b50e7b27.tar.gz
mltk-3f22158beb930cc341306352aa0a4ad3b50e7b27.tar.xz
mltk-3f22158beb930cc341306352aa0a4ad3b50e7b27.zip
[rfs-stage32] setup_partitions: Use properly quoted arguments + arrays
Diffstat (limited to 'core/rootfs/rootfs-stage32/data')
-rwxr-xr-xcore/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions57
1 files changed, 27 insertions, 30 deletions
diff --git a/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions b/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions
index fea561d1..4af0d62e 100755
--- a/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions
+++ b/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions
@@ -35,24 +35,27 @@ delalltmp () {
}
trap delalltmp EXIT
-mount_options () {
+# get_mount_options <fstype> <varname>
+get_mount_options () {
case "$1" in
ext2)
- echo "-o nocheck"
+ declare -ag "${2}=(-o nocheck)"
;;
ext4)
- echo "-o errors=remount-ro,data=ordered,relatime,quota"
+ declare -ag "${2}=(-o 'errors=remount-ro,data=ordered,relatime,quota')"
;;
+ *)
+ declare -ag "${2}=()"
esac
}
# General formatter for the /tmp partition on a local harddisk
format_disk () {
- MOUNT_OPTIONS_SET_BY_FORMAT_DISK="" # Global var!
+ declare -ag MOUNT_OPTIONS_SET_BY_FORMAT_DISK=() # Global var!
local target="$1"
local fslist="xfs jfs ext3 ext2 ext4"
local fs
- local path
+ declare -a fopt
[ $# -ge 2 ] && fslist="$2"
for fs in $fslist ; do
if grep -q "\\b${fs}\\b" "/proc/filesystems"; then
@@ -67,30 +70,24 @@ format_disk () {
fi
if which "mkfs.$fs" ; then
case "$fs" in
- xfs)
- fopt="-f"
+ xfs|reiserfs)
+ fopt=("-f")
;;
- ext2)
- fopt="-F"
- ;;
- ext3)
- fopt="-F"
+ ext2|ext3)
+ fopt=("-F")
;;
ext4)
- fopt="-F -b 4096 -O extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize,quota -E quotatype=usrquota:prjquota -I 256"
- ;;
- reiserfs)
- fopt="-f"
+ fopt=(-F -b 4096 -O "extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize,quota" -E "quotatype=usrquota:prjquota" -I 256)
;;
jfs)
- fopt=""
+ fopt=()
;;
*)
- fopt=""
+ fopt=()
;;
esac
- MOUNT_OPTIONS_SET_BY_FORMAT_DISK=$(mount_options "$fs")
- "mkfs.$fs" ${fopt} "${target}" && return 0 # Success!
+ get_mount_options "$fs" MOUNT_OPTIONS_SET_BY_FORMAT_DISK
+ "mkfs.$fs" "${fopt[@]}" "${target}" && return 0 # Success!
fi
done
return 1
@@ -99,36 +96,36 @@ format_disk () {
mount_temp () {
local PRE=$(pwd)
if ! cd /tmp; then
- mount_temp_fallback $@
+ mount_temp_fallback "$@"
return $?
fi
- mount $@ /tmp || return 1
+ mount "$@" /tmp || return 1
chmod a+rwxt /tmp
# Move stuff from working directory, which is old /tmp, to new /tmp just mounted
mv ./* ./.[!.]* ./..?* /tmp/ 2> /dev/null
local OLD=$(LANG=C ls -alh | grep -v -E ' \.\.?$' | grep -v '^total')
[ -n "$OLD" ] && echo -- "Leftovers:" && echo -- "$OLD"
- cd "$PRE"
+ cd "$PRE" || true
}
mount_temp_fallback () {
mkdir -p /tmptmp
mv /tmp/* /tmp/.* /tmptmp/ 2> /dev/null
- mount $@ /tmp || return 1
+ mount "$@" /tmp || return 1
chmod a+rwxt /tmp
mv /tmptmp/* /tmptmp/.* /tmp/
rmdir /tmptmp
return 0
}
-fdisk -l | grep '^/dev/' > "$PARTITION_FILE"
+/opt/openslx/sbin/fdisk -l | grep '^/dev/' > "$PARTITION_FILE"
if [ ! -s "$PARTITION_FILE" ]; then
udevadm trigger
sleep 3
udevadm trigger
udevadm settle
- fdisk -l | grep '^/dev/' > "$PARTITION_FILE"
+ /opt/openslx/sbin/fdisk -l | grep '^/dev/' > "$PARTITION_FILE"
fi
echo "Partitions:"
@@ -178,7 +175,7 @@ HAVE_TEMP=no
for PART_DEV in $(get_all_with_id "44"); do
# check for supported filesystem and formatter
if format_disk "$PART_DEV"; then
- mount_temp "$MOUNT_OPTIONS_SET_BY_FORMAT_DISK" "$PART_DEV" || continue
+ mount_temp "${MOUNT_OPTIONS_SET_BY_FORMAT_DISK[@]}" "$PART_DEV" || continue
echo -e "${PART_DEV}\t/tmp\t\tauto\t\tnoexec\t 0 0" >> "/etc/fstab"
HAVE_TEMP=yes
break
@@ -195,7 +192,7 @@ done
# special partition 45 (persistent scratch) to $MOUNT_POINT_45
HAVE_PARTITION_45=no
-mopts=$(mount_options ext4)
+get_mount_options "ext4" mopts
# try all the ID45 partitions until one succeeds, from large to small
for PART_DEV in $(get_all_with_id "45"); do
mkdir -p "$MOUNT_POINT_45"
@@ -244,7 +241,7 @@ for PART_DEV in $(get_all_with_id "45"); do
fi
fi
# try to mount
- if ! mount -v -t ext4 $mopts "${PART_DEV}" "$MOUNT_POINT_45"; then
+ if ! mount -v -t ext4 "${mopts[@]}" "${PART_DEV}" "$MOUNT_POINT_45"; then
# failed, try to format
gettmp "logfile"
if ! format_disk "$PART_DEV" "ext4" &> "$logfile"; then
@@ -252,7 +249,7 @@ for PART_DEV in $(get_all_with_id "45"); do
continue
fi
gettmp "logfile"
- if ! mount -v -t ext4 $mopts "${PART_DEV}" "$MOUNT_POINT_45" &> "$logfile"; then
+ if ! mount -v -t ext4 "${mopts[@]}" "${PART_DEV}" "$MOUNT_POINT_45" &> "$logfile"; then
slxlog "partition-45-newmount" "Cannot mount $PART_DEV with ext4 right after formatting" "$logfile"
continue
fi