All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] --foo bar cmdline argument parsing support for grub-* scripts
@ 2010-02-07  5:12 BVK Chaitanya
  2010-02-07 15:02 ` Colin Watson
  0 siblings, 1 reply; 6+ messages in thread
From: BVK Chaitanya @ 2010-02-07  5:12 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 175 bytes --]

Hi,


Attached patch adds support for "--option argument" style command line
parsing.  Currently all these script only support "--option=argument"
style.



-- 
bvk.chaitanya

[-- Attachment #2: fix-cmdline-arg-parsing.patch.txt --]
[-- Type: text/plain, Size: 12535 bytes --]

# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: bvk.groups@gmail.com-20100207050104-9ptsm4whvibzr2k6
# target_branch: file:///home/bvk/Work/grub2/mainline/
# testament_sha1: 5aafafe74a15ba6adf3fccd3253863820f21a972
# timestamp: 2010-02-07 10:37:51 +0530
# base_revision_id: phcoder@gmail.com-20100205233207-csk991t3yceon285
# 
# Begin patch
=== modified file 'util/grub-install.in'
--- util/grub-install.in	2010-01-20 01:19:53 +0000
+++ util/grub-install.in	2010-02-06 08:59:42 +0000
@@ -105,7 +105,11 @@
 }
 
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -113,33 +117,62 @@
     -v | --version)
 	echo "grub-install (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --modules)
+	modules=$1; shift;;
     --modules=*)
 	modules=`echo "$option" | sed 's/--modules=//'` ;;
+
+    --font)
+	font=$1; shift;;
     --font=*)
 	font=`echo "$option" | sed 's/--font=//'` ;;
+
+    --root-directory)
+	rootdir=$1; shift;;
     --root-directory=*)
 	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+
+    --grub-setup)
+	grub_setup=$1; shift;;
     --grub-setup=*)
 	grub_setup=`echo "$option" | sed 's/--grub-setup=//'` ;;
+
+    --grub-mkimage)
+	grub_mkimage=$1; shift;;
     --grub-mkimage=*)
 	grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;;
+
+    --grub-mkdevicemap)
+	grub_mkdevicemap=$1; shift;;
     --grub-mkdevicemap=*)
 	grub_mkdevicemap=`echo "$option" | sed 's/--grub-mkdevicemap=//'` ;;
+
+    --grub-probe)
+	grub_probe=$1; shift;;
     --grub-probe=*)
 	grub_probe=`echo "$option" | sed 's/--grub-probe=//'` ;;
+
     --no-floppy)
 	no_floppy="--no-floppy" ;;
     --recheck)
 	recheck=yes ;;
+
+    --disk-module)
+	if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
+	    disk_module=$1; shift;
+	fi ;;
     --disk-module=*)
 	if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
            disk_module=`echo "$option" | sed 's/--disk-module=//'`
         fi ;;
+
     # This is an undocumented feature...
     --debug)
 	debug=yes ;;
     -f | --force)
         setup_force="--force" ;;
+
     -*)
 	echo "Unrecognized option \`$option'" 1>&2
 	usage

=== modified file 'util/grub-mkconfig.in'
--- util/grub-mkconfig.in	2009-12-12 00:43:32 +0000
+++ util/grub-mkconfig.in	2010-02-07 04:44:50 +0000
@@ -50,7 +50,11 @@
 }
 
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -58,9 +62,9 @@
     -v | --version)
 	echo "$0 (GNU GRUB ${package_version})"
 	exit 0 ;;
-    -o)
+    -o | --output)
+	grub_cfg=$1
 	shift
-	grub_cfg=$1
 	;;
     --output=*)
 	grub_cfg=`echo "$option" | sed 's/--output=//'`

=== modified file 'util/grub-mkrescue.in'
--- util/grub-mkrescue.in	2009-12-22 17:20:27 +0000
+++ util/grub-mkrescue.in	2010-02-07 04:44:50 +0000
@@ -42,8 +42,8 @@
 
   -h, --help              print this message and exit
   -v, --version           print the version information and exit
+  -o, --output=FILE       save output in FILE [required]
   --modules=MODULES       pre-load specified modules MODULES
-  --output=FILE           save output in FILE [required]
 
 $0 generates a bootable rescue image with specified source files or directories.
 
@@ -52,7 +52,11 @@
 }
 
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -60,11 +64,24 @@
     -v | --version)
 	echo "$0 (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --modules)
+        modules=$1; shift ;;
     --modules=*)
 	modules=`echo "$option" | sed 's/--modules=//'` ;;
+
+    -o | --output)
+	output_image=$1; shift ;;
     --output=*)
 	output_image=`echo "$option" | sed 's/--output=//'` ;;
+
     # Intentionally undocumented
+    --override-directory)
+        override_dir=$1
+	shift
+	PATH=${override_dir}:$PATH
+	export PATH
+	;;
     --override-directory=*)
 	override_dir=`echo "${option}/" | sed 's/--override-directory=//'`
 	PATH=${override_dir}:$PATH

=== modified file 'util/grub-reboot.in'
--- util/grub-reboot.in	2010-01-05 11:16:42 +0000
+++ util/grub-reboot.in	2010-02-07 05:01:04 +0000
@@ -45,7 +45,11 @@
 }
 
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -53,8 +57,12 @@
     -v | --version)
 	echo "grub-reboot (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --root-directory)
+	rootdir=$1; shift ;;
     --root-directory=*)
 	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+
     -*)
 	echo "Unrecognized option \`$option'" 1>&2
 	usage

=== modified file 'util/grub-set-default.in'
--- util/grub-set-default.in	2009-12-08 01:00:26 +0000
+++ util/grub-set-default.in	2010-02-07 05:01:04 +0000
@@ -45,7 +45,11 @@
 }
 
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -53,8 +57,12 @@
     -v | --version)
 	echo "grub-set-default (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --root-directory)
+	rootdir=$1; shift ;;
     --root-directory=*)
 	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+
     -*)
 	echo "Unrecognized option \`$option'" 1>&2
 	usage

=== modified file 'util/i386/efi/grub-install.in'
--- util/i386/efi/grub-install.in	2010-01-05 10:53:03 +0000
+++ util/i386/efi/grub-install.in	2010-02-07 05:01:04 +0000
@@ -71,7 +71,11 @@
 }
 
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -79,16 +83,32 @@
     -v | --version)
 	echo "grub-install (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --modules)
+        modules=$1; shift ;;
     --modules=*)
 	modules=`echo "$option" | sed 's/--modules=//'` ;;
+
+    --root-directory)
+	rootdir=$1; shift ;;
     --root-directory=*)
 	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+
+    --grub-mkimage)
+	grub_mkimage=$1; shift ;;
     --grub-mkimage=*)
 	grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;;
+
+    --grub-mkdevicemap)
+	grub_mkdevicemap=$1; shift ;;
     --grub-mkdevicemap=*)
 	grub_mkdevicemap=`echo "$option" | sed 's/--grub-mkdevicemap=//'` ;;
+
+    --grub-probe)
+	grub_probe=$1; shift ;;
     --grub-probe=*)
 	grub_probe=`echo "$option" | sed 's/--grub-probe=//'` ;;
+
     --no-floppy)
 	no_floppy="--no-floppy" ;;
     --recheck)

=== modified file 'util/ieee1275/grub-install.in'
--- util/ieee1275/grub-install.in	2010-01-28 22:10:37 +0000
+++ util/ieee1275/grub-install.in	2010-02-07 05:01:04 +0000
@@ -75,7 +75,11 @@
 }
 
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -83,16 +87,32 @@
     -v | --version)
 	echo "grub-install (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --modules)
+	modules=$1; shift ;;
     --modules=*)
 	modules=`echo "$option" | sed 's/--modules=//'` ;;
+
+    --root-directory)
+	rootdir=$1; shift ;;
     --root-directory=*)
 	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+
+    --grub-mkdevicemap)
+	grub_mkdevicemap=$1; shift ;;
     --grub-mkdevicemap=*)
 	grub_mkdevicemap=`echo "$option" | sed 's/--grub-mkdevicemap=//'` ;;
+
+    --grub-mkimage)
+	grub_mkimage=$1; shift ;;
     --grub-mkimage=*)
 	grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;;
+
+    --grub-probe)
+	grub_probe=$1; shift ;;
     --grub-probe=*)
 	grub_probe=`echo "$option" | sed 's/--grub-probe=//'` ;;
+
     --no-nvram)
 	update_nvram=no ;;
     # This is an undocumented feature...

=== modified file 'util/powerpc/ieee1275/grub-mkrescue.in'
--- util/powerpc/ieee1275/grub-mkrescue.in	2009-11-11 23:21:13 +0000
+++ util/powerpc/ieee1275/grub-mkrescue.in	2010-02-07 05:01:04 +0000
@@ -55,7 +55,11 @@
 input_dir=${pkglibdir}
 
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -63,12 +67,22 @@
     -v | --version)
 	echo "grub-mkrescue (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --modules)
+	modules=$1; shift ;;
     --modules=*)
 	modules=`echo "$option" | sed 's/--modules=//'` ;;
+
+    --pkglibdir)
+	input_dir=$1; shift ;;
     --pkglibdir=*)
 	input_dir=`echo "$option" | sed 's/--pkglibdir=//'` ;;
+
+    --grub-mkimage)
+	grub_mkimage=$1; shift ;;
     --grub-mkimage=*)
 	grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;;
+
     -*)
 	echo "Unrecognized option \`$option'" 1>&2
 	usage

# Begin bundle
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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] --foo bar cmdline argument parsing support for grub-* scripts
  2010-02-07  5:12 [PATCH] --foo bar cmdline argument parsing support for grub-* scripts BVK Chaitanya
@ 2010-02-07 15:02 ` Colin Watson
  2010-02-08 16:23   ` BVK Chaitanya
  0 siblings, 1 reply; 6+ messages in thread
From: Colin Watson @ 2010-02-07 15:02 UTC (permalink / raw)
  To: The development of GNU GRUB

On Sun, Feb 07, 2010 at 10:42:12AM +0530, BVK Chaitanya wrote:
> Attached patch adds support for "--option argument" style command line
> parsing.  Currently all these script only support "--option=argument"
> style.

Yes please (note: haven't reviewed the patch in detail), but perhaps it
would make sense to use getopt instead?  There are some compatibility
issues there that might be a problem if we need to support systems where
non-GNU getopt is installed, but it does involve doing less of this by
hand.

-- 
Colin Watson                                       [cjwatson@ubuntu.com]



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] --foo bar cmdline argument parsing support for grub-*  scripts
  2010-02-07 15:02 ` Colin Watson
@ 2010-02-08 16:23   ` BVK Chaitanya
  2010-02-09 12:43     ` Grégoire Sutre
  0 siblings, 1 reply; 6+ messages in thread
From: BVK Chaitanya @ 2010-02-08 16:23 UTC (permalink / raw)
  To: The development of GNU GRUB

I assume you are talking about /usr/bin/getopt (not libc getopt).
/usr/bin/getopt comes with util-linux package (in debian), and yes, I
too dont think it would be available on other platforms as bash or
coreutils does.




-- 
bvk.chaitanya



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] --foo bar cmdline argument parsing support for grub-* scripts
  2010-02-08 16:23   ` BVK Chaitanya
@ 2010-02-09 12:43     ` Grégoire Sutre
  2010-02-09 12:54       ` Colin Watson
  0 siblings, 1 reply; 6+ messages in thread
From: Grégoire Sutre @ 2010-02-09 12:43 UTC (permalink / raw)
  To: The development of GRUB 2

BVK Chaitanya wrote:
> I assume you are talking about /usr/bin/getopt (not libc getopt).
> /usr/bin/getopt comes with util-linux package (in debian), and yes, I
> too dont think it would be available on other platforms as bash or
> coreutils does.

You might want to use the POSIX shell built-in getopts instead of the 
getopt binary.

http://www.opengroup.org/onlinepubs/9699919799/utilities/getopts.html

This built-in is supported by bash, ksh, NetBSD sh, and surely many 
other shells.

Best regards,

Grégoire



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] --foo bar cmdline argument parsing support for grub-* scripts
  2010-02-09 12:43     ` Grégoire Sutre
@ 2010-02-09 12:54       ` Colin Watson
  2010-04-12 17:30         ` BVK Chaitanya
  0 siblings, 1 reply; 6+ messages in thread
From: Colin Watson @ 2010-02-09 12:54 UTC (permalink / raw)
  To: The development of GNU GRUB

On Tue, Feb 09, 2010 at 01:43:33PM +0100, Grégoire Sutre wrote:
> BVK Chaitanya wrote:
>> I assume you are talking about /usr/bin/getopt (not libc getopt).
>> /usr/bin/getopt comes with util-linux package (in debian), and yes, I
>> too dont think it would be available on other platforms as bash or
>> coreutils does.
>
> You might want to use the POSIX shell built-in getopts instead of the  
> getopt binary.
>
> http://www.opengroup.org/onlinepubs/9699919799/utilities/getopts.html
>
> This built-in is supported by bash, ksh, NetBSD sh, and surely many  
> other shells.

But it doesn't support long options, so it is useless here.

-- 
Colin Watson                                       [cjwatson@ubuntu.com]



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] --foo bar cmdline argument parsing support for grub-*  scripts
  2010-02-09 12:54       ` Colin Watson
@ 2010-04-12 17:30         ` BVK Chaitanya
  0 siblings, 0 replies; 6+ messages in thread
From: BVK Chaitanya @ 2010-04-12 17:30 UTC (permalink / raw)
  To: The development of GNU GRUB

[-- Attachment #1: Type: text/plain, Size: 210 bytes --]

Updated patch which prints getopt like error message for missing
option-parameters (like in grub-mkrescue -o) is attached.  Its been
pushed into branches/fix-cmdline-arg-parsing as well.





-- 
bvk.chaitanya

[-- Attachment #2: cmdline.patch --]
[-- Type: text/x-patch, Size: 18103 bytes --]

# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: bvk.groups@gmail.com-20100412160303-6jybcf4eb75thcj3
# target_branch: file:///home/bvk/Work/grub2/mainline/
# testament_sha1: ff33d30449069fb834a529fa1960a74052916fa3
# timestamp: 2010-04-12 21:33:14 +0530
# base_revision_id: phcoder@gmail.com-20100410231431-bddwdlx8sh5oa2j2
# 
# Begin patch
=== modified file 'util/grub-install.in'
--- util/grub-install.in	2010-04-03 18:52:06 +0000
+++ util/grub-install.in	2010-04-12 16:03:03 +0000
@@ -105,8 +105,23 @@
 EOF
 }
 
+argument () {
+  opt=$1
+  shift
+
+  if test $# -eq 0; then
+      echo "$0: option requires an argument -- '$opt'" 1>&2
+      exit 1
+  fi
+  echo $1
+}
+
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -114,33 +129,62 @@
     -v | --version)
 	echo "grub-install (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --modules)
+	modules=`argument $option "$@"`; shift;;
     --modules=*)
 	modules=`echo "$option" | sed 's/--modules=//'` ;;
+
+    --font)
+	font=`argument $option "$@"`; shift;;
     --font=*)
 	font=`echo "$option" | sed 's/--font=//'` ;;
+
+    --root-directory)
+	rootdir=`argument $option "$@"`; shift;;
     --root-directory=*)
 	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+
+    --grub-setup)
+	grub_setup=`argument $option "$@"`; shift;;
     --grub-setup=*)
 	grub_setup=`echo "$option" | sed 's/--grub-setup=//'` ;;
+
+    --grub-mkimage)
+	grub_mkimage=`argument $option "$@"`; shift;;
     --grub-mkimage=*)
 	grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;;
+
+    --grub-mkdevicemap)
+	grub_mkdevicemap=`argument $option "$@"`; shift;;
     --grub-mkdevicemap=*)
 	grub_mkdevicemap=`echo "$option" | sed 's/--grub-mkdevicemap=//'` ;;
+
+    --grub-probe)
+	grub_probe=`argument $option "$@"`; shift;;
     --grub-probe=*)
 	grub_probe=`echo "$option" | sed 's/--grub-probe=//'` ;;
+
     --no-floppy)
 	no_floppy="--no-floppy" ;;
     --recheck)
 	recheck=yes ;;
+
+    --disk-module)
+	if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
+	    disk_module=`argument $option "$@"`; shift;
+	fi ;;
     --disk-module=*)
 	if [ "${target_cpu}-${platform}" = "i386-pc" ] ; then
            disk_module=`echo "$option" | sed 's/--disk-module=//'`
         fi ;;
+
     # This is an undocumented feature...
     --debug)
 	debug=yes ;;
     -f | --force)
         setup_force="--force" ;;
+
     -*)
 	echo "Unrecognized option \`$option'" 1>&2
 	usage

=== modified file 'util/grub-mkconfig.in'
--- util/grub-mkconfig.in	2010-04-09 15:37:38 +0000
+++ util/grub-mkconfig.in	2010-04-12 16:03:03 +0000
@@ -49,8 +49,23 @@
 EOF
 }
 
+argument () {
+  opt=$1
+  shift
+
+  if test $# -eq 0; then
+      echo "$0: option requires an argument -- '$opt'" 1>&2
+      exit 1
+  fi
+  echo $1
+}
+
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -58,10 +73,8 @@
     -v | --version)
 	echo "$0 (GNU GRUB ${package_version})"
 	exit 0 ;;
-    -o)
-	shift
-	grub_cfg=$1
-	;;
+    -o | --output)
+	grub_cfg=`argument $option "$@"`; shift;;
     --output=*)
 	grub_cfg=`echo "$option" | sed 's/--output=//'`
 	;;
@@ -70,6 +83,10 @@
 	usage
 	exit 1
 	;;
+    *)
+	echo "Invalid parameter, $option" 1>&2
+	exit 1
+	;;
     esac
 done
 

=== modified file 'util/grub-mkrescue.in'
--- util/grub-mkrescue.in	2010-04-09 18:40:14 +0000
+++ util/grub-mkrescue.in	2010-04-12 16:03:03 +0000
@@ -42,8 +42,8 @@
 
   -h, --help              print this message and exit
   -v, --version           print the version information and exit
+  -o, --output=FILE       save output in FILE [required]
   --modules=MODULES       pre-load specified modules MODULES
-  --output=FILE           save output in FILE [required]
 
 $0 generates a bootable rescue image with specified source files or directories.
 
@@ -51,8 +51,23 @@
 EOF
 }
 
+argument () {
+  opt=$1
+  shift
+
+  if test $# -eq 0; then
+      echo "$0: option requires an argument -- '$opt'" 1>&2
+      exit 1
+  fi
+  echo $1
+}
+
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -60,11 +75,24 @@
     -v | --version)
 	echo "$0 (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --modules)
+        modules=`argument $option "$@"`; shift ;;
     --modules=*)
 	modules=`echo "$option" | sed 's/--modules=//'` ;;
+
+    -o | --output)
+	output_image=`argument $option "$@"`; shift ;;
     --output=*)
 	output_image=`echo "$option" | sed 's/--output=//'` ;;
+
     # Intentionally undocumented
+    --override-directory)
+        override_dir=`argument $option "$@"`
+	shift
+	PATH=${override_dir}:$PATH
+	export PATH
+	;;
     --override-directory=*)
 	override_dir=`echo "${option}/" | sed 's/--override-directory=//'`
 	PATH=${override_dir}:$PATH
@@ -76,7 +104,7 @@
 	exit 1
 	;;
     *)
-	source="${source} ${option}" ;;
+	source="${source} ${option} $@"; break ;;
     esac
 done
 

=== modified file 'util/grub-reboot.in'
--- util/grub-reboot.in	2010-01-05 11:16:42 +0000
+++ util/grub-reboot.in	2010-04-12 16:03:03 +0000
@@ -44,8 +44,23 @@
 EOF
 }
 
+argument () {
+  opt=$1
+  shift
+
+  if test $# -eq 0; then
+      echo "$0: option requires an argument -- '$opt'" 1>&2
+      exit 1
+  fi
+  echo $1
+}
+
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -53,8 +68,12 @@
     -v | --version)
 	echo "grub-reboot (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --root-directory)
+	rootdir=`argument $option "$@"`; shift ;;
     --root-directory=*)
 	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+
     -*)
 	echo "Unrecognized option \`$option'" 1>&2
 	usage

=== modified file 'util/grub-set-default.in'
--- util/grub-set-default.in	2009-12-08 01:00:26 +0000
+++ util/grub-set-default.in	2010-04-12 16:03:03 +0000
@@ -44,8 +44,23 @@
 EOF
 }
 
+argument () {
+  opt=$1
+  shift
+
+  if test $# -eq 0; then
+      echo "$0: option requires an argument -- '$opt'" 1>&2
+      exit 1
+  fi
+  echo $1
+}
+
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -53,8 +68,12 @@
     -v | --version)
 	echo "grub-set-default (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --root-directory)
+	rootdir=`argument $option "$@"`; shift ;;
     --root-directory=*)
 	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+
     -*)
 	echo "Unrecognized option \`$option'" 1>&2
 	usage

=== modified file 'util/i386/efi/grub-install.in'
--- util/i386/efi/grub-install.in	2010-04-03 18:48:36 +0000
+++ util/i386/efi/grub-install.in	2010-04-12 16:03:03 +0000
@@ -71,8 +71,23 @@
 EOF
 }
 
+argument () {
+  opt=$1
+  shift
+
+  if test $# -eq 0; then
+      echo "$0: option requires an argument -- '$opt'" 1>&2
+      exit 1
+  fi
+  echo $1
+}
+
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -80,16 +95,32 @@
     -v | --version)
 	echo "grub-install (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --modules)
+        modules=`argument $option "$@"`; shift ;;
     --modules=*)
 	modules=`echo "$option" | sed 's/--modules=//'` ;;
+
+    --root-directory)
+	rootdir=`argument $option "$@"`; shift ;;
     --root-directory=*)
 	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+
+    --grub-mkimage)
+	grub_mkimage=`argument $option "$@"`; shift ;;
     --grub-mkimage=*)
 	grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;;
+
+    --grub-mkdevicemap)
+	grub_mkdevicemap=`argument $option "$@"`; shift ;;
     --grub-mkdevicemap=*)
 	grub_mkdevicemap=`echo "$option" | sed 's/--grub-mkdevicemap=//'` ;;
+
+    --grub-probe)
+	grub_probe=`argument $option "$@"`; shift ;;
     --grub-probe=*)
 	grub_probe=`echo "$option" | sed 's/--grub-probe=//'` ;;
+
     --no-floppy)
 	no_floppy="--no-floppy" ;;
     --recheck)

=== modified file 'util/ieee1275/grub-install.in'
--- util/ieee1275/grub-install.in	2010-04-03 18:48:36 +0000
+++ util/ieee1275/grub-install.in	2010-04-12 16:03:03 +0000
@@ -74,8 +74,23 @@
 EOF
 }
 
+argument () {
+  opt=$1
+  shift
+
+  if test $# -eq 0; then
+      echo "$0: option requires an argument -- '$opt'" 1>&2
+      exit 1
+  fi
+  echo $1
+}
+
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -83,16 +98,32 @@
     -v | --version)
 	echo "grub-install (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --modules)
+	modules=`argument $option "$@"`; shift ;;
     --modules=*)
 	modules=`echo "$option" | sed 's/--modules=//'` ;;
+
+    --root-directory)
+	rootdir=`argument $option "$@"`; shift ;;
     --root-directory=*)
 	rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
+
+    --grub-mkdevicemap)
+	grub_mkdevicemap=`argument $option "$@"`; shift ;;
     --grub-mkdevicemap=*)
 	grub_mkdevicemap=`echo "$option" | sed 's/--grub-mkdevicemap=//'` ;;
+
+    --grub-mkimage)
+	grub_mkimage=`argument $option "$@"`; shift ;;
     --grub-mkimage=*)
 	grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;;
+
+    --grub-probe)
+	grub_probe=`argument $option "$@"`; shift ;;
     --grub-probe=*)
 	grub_probe=`echo "$option" | sed 's/--grub-probe=//'` ;;
+
     --no-nvram)
 	update_nvram=no ;;
     # This is an undocumented feature...

=== modified file 'util/powerpc/ieee1275/grub-mkrescue.in'
--- util/powerpc/ieee1275/grub-mkrescue.in	2009-11-11 23:21:13 +0000
+++ util/powerpc/ieee1275/grub-mkrescue.in	2010-04-12 16:03:03 +0000
@@ -52,10 +52,25 @@
 EOF
 }
 
+argument () {
+  opt=$1
+  shift
+
+  if test $# -eq 0; then
+      echo "$0: option requires an argument -- '$opt'" 1>&2
+      exit 1
+  fi
+  echo $1
+}
+
 input_dir=${pkglibdir}
 
 # Check the arguments.
-for option in "$@"; do
+while test $# -gt 0
+do
+    option=$1
+    shift
+
     case "$option" in
     -h | --help)
 	usage
@@ -63,12 +78,22 @@
     -v | --version)
 	echo "grub-mkrescue (GNU GRUB ${PACKAGE_VERSION})"
 	exit 0 ;;
+
+    --modules)
+	modules=`argument $option "$@"`; shift ;;
     --modules=*)
 	modules=`echo "$option" | sed 's/--modules=//'` ;;
+
+    --pkglibdir)
+	input_dir=`argument $option "$@"`; shift ;;
     --pkglibdir=*)
 	input_dir=`echo "$option" | sed 's/--pkglibdir=//'` ;;
+
+    --grub-mkimage)
+	grub_mkimage=`argument $option "$@"`; shift ;;
     --grub-mkimage=*)
 	grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;;
+
     -*)
 	echo "Unrecognized option \`$option'" 1>&2
 	usage

# Begin bundle
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
118v+LuSKcKEheL94Jg=

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-04-12 17:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-07  5:12 [PATCH] --foo bar cmdline argument parsing support for grub-* scripts BVK Chaitanya
2010-02-07 15:02 ` Colin Watson
2010-02-08 16:23   ` BVK Chaitanya
2010-02-09 12:43     ` Grégoire Sutre
2010-02-09 12:54       ` Colin Watson
2010-04-12 17:30         ` BVK Chaitanya

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.