commit: 2eae1bbb0da75bec6d38b98c97a3de3a3365f901
Author: Fernando Reyes (likewhoa) <design <AT> missionaccomplish <DOT> com>
AuthorDate: Mon Jun 23 20:03:36 2014 +0000
Commit: Richard Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Wed Apr 29 17:31:45 2015 +0000
URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=2eae1bbb
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.
defaults/initrd.scripts | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
index c258c00..02842bf 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