diff options
author | 2014-06-23 22:03:36 +0200 | |
---|---|---|
committer | 2015-04-29 13:31:45 -0400 | |
commit | 2eae1bbb0da75bec6d38b98c97a3de3a3365f901 (patch) | |
tree | 5f87582bb2a1ec1b57b6e6a96d1c72f5518c4143 | |
parent | Coding style changes throughout all the AUFS related code. (diff) | |
download | genkernel-2eae1bbb0da75bec6d38b98c97a3de3a3365f901.tar.gz genkernel-2eae1bbb0da75bec6d38b98c97a3de3a3365f901.tar.bz2 genkernel-2eae1bbb0da75bec6d38b98c97a3de3a3365f901.zip |
Introduced a new funtion to test for numeric values that that our changes_fs doesn't fail
when non-numeric values are given, also the styling of changes_fs was changed to
reflect new logic.
-rw-r--r-- | defaults/initrd.scripts | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts index c258c004..02842bff 100644 --- a/defaults/initrd.scripts +++ b/defaults/initrd.scripts @@ -345,6 +345,18 @@ conf_rc_no_umounts() { fi } +# is_int "$A" ["$B"..] +# NOTE we consider a leading 0 false as it would be interpreted as octal +is_int(){ + local i + for i; do + case $i in + ''|*[!0-9]*|0?*) return 1 ;; + *) : + esac + done +} + # Function to create an ext2 fs on $CHANGESDEV, $CHANGESMNT mountpoint create_changefs() { local size @@ -352,11 +364,12 @@ create_changefs() { while :; do read -p '<< Size of file (Press Enter for default 256 Mb): ' size - [ -n "$size" ] || size=256 - - size=$size + size=${size:-256} - if [ 15 -ge "$size" ]; then + if ! is_int $size; then + bad_msg "Non numeric value given for size, try again" + continue + elif [ 15 -ge "$size" ]; then bad_msg "Please give a size of at least 16 Megabytes" else if dd if=/dev/zero "of=$CHANGESMNT$AUFS_CHANGESFILE" bs=1M count="$size" &>/dev/null; then |