FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Alt

 
 
LinkBack Thread Tools
 
Old 11-22-2011, 01:34 PM
Cleber Rosa
 
Default Add new '--default-index' feature.

This displays the (numeric) index of the default entry directly
from the parsed configuration file.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
grubby.8 | 8 ++++++--
grubby.c | 12 ++++++++++--
test.sh | 17 +++++++++++++++++
test/results/defaultindex/0 | 1 +
test/results/defaultindex/2 | 1 +
5 files changed, 35 insertions(+), 4 deletions(-)
create mode 100644 test/results/defaultindex/0
create mode 100644 test/results/defaultindex/2

diff --git a/grubby.8 b/grubby.8
index aaa061b..ca2c93f 100644
--- a/grubby.8
+++ b/grubby.8
@@ -5,8 +5,8 @@ grubby - command line tool for configuring grub, lilo, and elilo
.SH SYNOPSIS
fBgrubbyfR [--add-kernel=fIkernel-pathfR] [--args=fIargsfR]
[--bad-image-okay] [--boot-filesystem=fIbootfsfR]
- [--bootloader-probe] [--config-file fIpathfR]
- [--copy-default] [--default-kernel]
+ [--bootloader-probe] [--config-file fIpathfR] [--copy-default]
+ [--default-kernel] [--default-index]
[--grub] [--lilo] [--yaboot] [--silo] [--zipl]
[--info=fIkernel-pathfR] [--initrd=fIinitrd-pathfR]
[--make-default] [-o path] [--version]
@@ -98,6 +98,10 @@ and initrd path will never be copied.
Display the full path to the current default kernel and exit.

.TP
+fB--default-indexfR
+Display the numeric index of the current default boot entry and exit.
+
+.TP
fB--elilofR
Use an fBelilofR style configuration file.

diff --git a/grubby.c b/grubby.c
index 7c98978..0158c2e 100644
--- a/grubby.c
+++ b/grubby.c
@@ -3159,6 +3159,7 @@ int main(int argc, const char ** argv) {
struct singleEntry * template = NULL;
int copyDefault = 0, makeDefault = 0;
int displayDefault = 0;
+ int displayDefaultIndex = 0;
struct poptOption options[] = {
{ "add-kernel", 0, POPT_ARG_STRING, &newKernelPath, 0,
_("add an entry for the specified kernel"), _("kernel-path") },
@@ -3191,6 +3192,8 @@ int main(int argc, const char ** argv) {
"template"), NULL },
{ "default-kernel", 0, 0, &displayDefault, 0,
_("display the path of the default kernel") },
+ { "default-index", 0, 0, &displayDefaultIndex, 0,
+ _("display the index of the default kernel") },
{ "elilo", 0, POPT_ARG_NONE, &configureELilo, 0,
_("configure elilo bootloader") },
{ "extlinux", 0, POPT_ARG_NONE, &configureExtLinux, 0,
@@ -3334,7 +3337,7 @@ int main(int argc, const char ** argv) {

if (bootloaderProbe && (displayDefault || kernelInfo || newKernelVersion ||
newKernelPath || removeKernelPath || makeDefault ||
- defaultKernel)) {
+ defaultKernel || displayDefaultIndex)) {
fprintf(stderr, _("grubby: --bootloader-probe may not be used with "
"specified option"));
return 1;
@@ -3385,7 +3388,7 @@ int main(int argc, const char ** argv) {

if (!removeKernelPath && !newKernelPath && !displayDefault && !defaultKernel
&& !kernelInfo && !bootloaderProbe && !updateKernelPath
- && !removeMBKernel) {
+ && !removeMBKernel && !displayDefaultIndex) {
fprintf(stderr, _("grubby: no action specified
"));
return 1;
}
@@ -3480,6 +3483,11 @@ int main(int argc, const char ** argv) {
((rootspec != NULL) ? strlen(rootspec) : 0));

return 0;
+
+ } else if (displayDefaultIndex) {
+ if (config->defaultImage == -1) return 0;
+ printf("%i
", config->defaultImage);
+
} else if (kernelInfo)
return displayInfo(config, kernelInfo, bootPrefix);

diff --git a/test.sh b/test.sh
index 95d552b..b1e467b 100755
--- a/test.sh
+++ b/test.sh
@@ -198,6 +198,19 @@ grubTest grub.4 default/g4.1 --boot-filesystem=/ --set-default=/boot/vmlinuz-2.4
grubTest grub.4 default/g4.2 --boot-filesystem=/ --set-default=/boot/vmlinuz-2.4.7-ac3 --remove-kernel /boot/vmlinuz-2.4.7-2.5 --add-kernel=/boot/new-kernel --copy-default --title New_Title
grubTest grub.6 default/g6.1 --remove-kernel=/boot/vmlinuz-2.4.7-2.9 --boot-filesystem=/

+testing="GRUB display default index"
+grubDisplayTest grub.1 defaultindex/0 --default-index
+grubDisplayTest grub.2 defaultindex/0 --default-index
+grubDisplayTest grub.3 defaultindex/0 --default-index
+grubDisplayTest grub.4 defaultindex/0 --default-index
+grubDisplayTest grub.5 defaultindex/0 --default-index
+grubDisplayTest grub.6 defaultindex/2 --default-index
+grubDisplayTest grub.7 defaultindex/2 --default-index
+grubDisplayTest grub.8 defaultindex/0 --default-index
+grubDisplayTest grub.9 defaultindex/0 --default-index
+grubDisplayTest grub.10 defaultindex/0 --default-index
+grubDisplayTest grub.10 defaultindex/0 --default-index
+
testing="LILO default directive"
liloTest lilo.1 default/l1.1 --set-default=/boot/vmlinuz-2.4.18-4
liloTest lilo.1 default/l1.2 --remove-kernel=/boot/vmlinuz-2.4.18-4smp
@@ -342,6 +355,10 @@ testing="GRUB2 add initrd"
grub2Test grub2.2 add/g2-1.4 --update-kernel=/boot/new-kernel.img
--initrd=/boot/new-initrd --boot-filesystem=/boot/

+testing="GRUB2 display default index"
+grub2DisplayTest grub2.1 defaultindex/0 --default-index
+grub2DisplayTest grub2.2 defaultindex/0 --default-index
+
testing="YABOOT add kernel"
yabootTest yaboot.1 add/y1.1 --copy-default --boot-filesystem=/ --add-kernel=/boot/new-kernel
--title=newtitle
diff --git a/test/results/defaultindex/0 b/test/results/defaultindex/0
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/test/results/defaultindex/0
@@ -0,0 +1 @@
+0
diff --git a/test/results/defaultindex/2 b/test/results/defaultindex/2
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/test/results/defaultindex/2
@@ -0,0 +1 @@
+2
--
1.7.6.4

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 06:54 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org