From: dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
To: harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Cc: vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
jstancek-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: [PATCH 1/2 V3] add function getargnum
Date: Thu, 17 Jan 2013 16:55:50 +0800 [thread overview]
Message-ID: <20130117085724.062434676@redhat.com> (raw)
In-Reply-To: 20130117085549.207542806@redhat.com
[-- Attachment #1: patch1 --]
[-- Type: text/plain, Size: 1505 bytes --]
For cmdline argument with numeric value, add a new function getargnum
It will get proper value with default value as $1, min value as $2,
max value as $3, and param name as $4. valid result will be echo to stdout.
for nul or value not valid it will just echo the default value.
Note: The values should be >=0
[v1->v2]: add arg <minval>
[v2->v3]: do not use bash string match =~
Signed-off-by: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
modules.d/99base/dracut-lib.sh | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
--- dracut.orig/modules.d/99base/dracut-lib.sh
+++ dracut/modules.d/99base/dracut-lib.sh
@@ -167,6 +167,35 @@ getargbool() {
return 0
}
+isdigit() {
+ case "$1" in
+ *[!0-9]*|"") return 1;;
+ esac
+
+ return 0
+}
+
+# getargnum <defaultval> <minval> <maxval> <arg>
+# Will echo the arg if it's in range [minval - maxval].
+# If it's not set or it's not valid, will set it <defaultval>.
+# Note all values are required to be >= 0 here.
+# <defaultval> should be with [minval -maxval].
+getargnum() {
+ local _b
+ unset _b
+ local _default _min _max
+ _default=$1; shift
+ _min=$1; shift
+ _max=$1; shift
+ _b=$(getarg "$1")
+ [ $? -ne 0 -a -z "$_b" ] && _b=$_default
+ if [ -n "$_b" ]; then
+ isdigit "$_b" && _b=$(($_b)) && \
+ [[ $_b -ge $_min && $_b -le $_max ]] && echo $_b && return
+ fi
+ echo $_default
+}
+
_dogetargs() {
debug_off
local _o _found _key
next prev parent reply other threads:[~2013-01-17 8:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-17 8:55 [PATCH 0/2 V3] memory usage tracing update dyoung-H+wXaHxf7aLQT0dZR+AlfA
2013-01-17 8:55 ` dyoung-H+wXaHxf7aLQT0dZR+AlfA [this message]
[not found] ` <20130117085724.062434676-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-01-22 14:32 ` [PATCH 1/2 V3] add function getargnum Harald Hoyer
2013-01-17 8:55 ` [PATCH 2/2 V3] Add memory usage trace to diffrent hook points dyoung-H+wXaHxf7aLQT0dZR+AlfA
[not found] ` <20130117085724.212324334-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-01-17 13:43 ` Harald Hoyer
[not found] ` <50F7FFF2.4020309-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-01-18 1:59 ` [PATCH 2/2 V4] " Dave Young
[not found] ` <50F8AC98.1060308-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-01-22 14:32 ` Harald Hoyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130117085724.062434676@redhat.com \
--to=dyoung-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=jstancek-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox