From 15f0572f2f456c2c1b700bc790d9ce7a5c13cc74 Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Tue, 4 Aug 2015 23:54:41 -0700
Subject: [PATCH] rename grub2-editenv to grub-editenv

We don't use the name grub2-editenv for grub2.

Upstream-Status: Inappropriate

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>

---
 grubby.c | 4 ++--
 test.sh  | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/grubby.c b/grubby.c
index 396041a..3ceae69 100644
--- a/grubby.c
+++ b/grubby.c
@@ -301,7 +301,7 @@ static char *grub2GetEnv(struct configFileInfo *info, char *name)
 	char *ret = NULL;
 	char *envFile = info->envFile ? info->envFile : "/boot/grub2/grubenv";
 	int rc =
-	    asprintf(&s, "grub2-editenv %s list | grep '^%s='", envFile, name);
+	    asprintf(&s, "grub-editenv %s list | grep '^%s='", envFile, name);
 
 	if (rc < 0)
 		return NULL;
@@ -373,7 +373,7 @@ static int grub2SetEnv(struct configFileInfo *info, char *name, char *value)
 	if (!value)
 		return -1;
 
-	rc = asprintf(&s, "grub2-editenv %s set '%s=%s'", envFile, name, value);
+	rc = asprintf(&s, "grub-editenv %s set '%s=%s'", envFile, name, value);
 	free(value);
 	if (rc < 0)
 		return -1;
diff --git a/test.sh b/test.sh
index 33d24cf..009479c 100755
--- a/test.sh
+++ b/test.sh
@@ -573,7 +573,7 @@ if [ "$testgrub2" == "y" ]; then
         --remove-kernel=/boot/vmlinuz-2.6.38.2-9.fc15.x86_64 \
         --boot-filesystem=/boot/
     commandTest "saved_default output" \
-        "grub2-editenv test/grub2-support_files/env_temp list" \
+        "grub-editenv test/grub2-support_files/env_temp list" \
         "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64"
 
     # copy a stanza and add arguments as well, while using --set-index=
@@ -627,7 +627,7 @@ if [ "$testgrub2" == "y" ]; then
         --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \
         --copy-default
     commandTest "saved_default output" \
-        "grub2-editenv test/grub2-support_files/env_temp list" \
+        "grub-editenv test/grub2-support_files/env_temp list" \
         "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64"
 
     testing="GRUB2 add kernel with default=saved_entry and a terrible title"
@@ -640,13 +640,13 @@ if [ "$testgrub2" == "y" ]; then
     testing="GRUB2 set default with default=saved_entry and a terrible name"
     grub2Test grub2.9 add/g2-1.9 --env grubenv.1 --set-default-index=0
     commandTest "saved_default output" \
-        "grub2-editenv test/grub2-support_files/env_temp list" \
+        "grub-editenv test/grub2-support_files/env_temp list" \
         'saved_entry=Fedora (3.10.3-300.fc19.x86_64) 19 (Schrödinger’s Cat)'
 
     testing="GRUB2 set default with default=saved_entry"
     grub2Test grub2.8 add/g2-1.8 --env grubenv.1 --set-default-index=0
     commandTest "saved_default output" \
-        "grub2-editenv test/grub2-support_files/env_temp list" \
+        "grub-editenv test/grub2-support_files/env_temp list" \
         "saved_entry=title"
 
     testing="GRUB2 --default-index with default=saved_entry"
