← Back to team overview

guadalinex-members team mailing list archive

[Merge] lp:~guadalinex-members/gru/gru2 into lp:gru

 

Mantas Kriaučiūnas has proposed merging lp:~guadalinex-members/gru/gru2 into lp:gru.

Requested reviews:
  Guadalinex Members (guadalinex-members)


Please change dependency to grub-pc|grub in debian/control to make gru install correctly into Ubuntu 9.10 or 10.04
-- 
https://code.launchpad.net/~guadalinex-members/gru/gru2/+merge/24113
Your team Guadalinex Members is subscribed to branch lp:gru.
=== modified file 'gru'
--- gru	2009-03-08 00:31:50 +0000
+++ gru	2010-04-26 10:01:20 +0000
@@ -1,13 +1,14 @@
 #!/usr/bin/python
 # -*- coding: iso-8859-1 -*-
 
-# gru 1.1
-# GRUB RECOVER UTILITY
+# gru 2.0
+# GRUB RECOVER UTILITY 2
 # Reinstall grub menu after another impolite "operative system" overwrites MBR
 # author: Alfonso E.M. alfonso@xxxxxxxxxxxxxxxx
 # date: 16/Mar/2007
 # changelog:
 # 21/Mar/2007 chroot is not needed anymore
+# 22/Mar/2010 migrating to grub2
 
 import commands
 import sys
@@ -58,7 +59,7 @@
         list.close 
         return disks, partitions
 
-# tranlate: Converts from hda, sda.. format to human readable (likely)
+# translate: Converts from hda, sda.. format to human readable (likely)
 def translate(item):
     name = ""
     if item[:1] == 's':
@@ -97,24 +98,25 @@
 else:
     target = origin
 
-status, output = commands.getstatusoutput("mkdir /mnt/gru")
+tmpdir="/mnt/gru"
+status, output = commands.getstatusoutput("mkdir "+tmpdir)
 if status > 0:
-    info("No es posible crear un directorio temporal")
+    info("No es posible crear un directorio temporal "+tmpdir)
     sys.exit(status)
 
-status, output = commands.getstatusoutput("mount " + origin + " /mnt/gru")
+status, output = commands.getstatusoutput("mount " + origin + " " + tmpdir)
 if status > 0:
     info("No es posible acceder a la particion seleccionada")
-    status, output = commands.getstatusoutput("rmdir /mnt/gru")
+    status, output = commands.getstatusoutput("rmdir "+tmpdir)
     sys.exit(status)
 
 
 try:
-    list = open("/mnt/gru/boot/grub/menu.lst")
+    list = open(tmpdir+"/boot/grub/grub.cfg")
 except:
     info("En esta partición no hay datos de menú instalables")
-    status, output = commands.getstatusoutput("umount /mnt/gru")
-    status, output = commands.getstatusoutput("rmdir /mnt/gru")
+    status, output = commands.getstatusoutput("umount "+tmpdir)
+    status, output = commands.getstatusoutput("rmdir "+tmpdir)
     sys.exit(status)
 
 menupoints = ""
@@ -123,19 +125,29 @@
     line = list.readline()
     if line == "":
         break
-    if re.search("^title\s+", line):
-        key, value = re.split("title\s+", line, 1)
-        menupoints += value
+    r=re.search('^menuentry\s+"(.*)"\s+',line)
+    if r:
+        title  = r.group(1)
+        menupoints += title+"\n"
 list.close() 
 
 info("Este es el menú que se instalará:\n\n" + menupoints)
 
+
+#status,output=commands.getstatusoutput("mount --bind /dev "+ tmpdir+"/dev")
+#status,output=commands.getstatusoutput("mount --bind /proc "+tmpdir+"/proc")
+#status,output=commands.getstatusoutput("mount --bind /sys "+ tmpdir+"/sys")
+
 #status,output=commands.getstatusoutput("chroot /mnt/gru grub-install "+target)
-status, output = commands.getstatusoutput("/sbin/grub-install " + \
+status, output = commands.getstatusoutput("/usr/sbin/grub-install " + \
                                           "--root-directory=/mnt/gru " + target)
+                                          
+
 if status > 0:
     info("No es posible instalar el menú en " + target)
     print output
 
 status, output = commands.getstatusoutput("umount /mnt/gru")
 status, output = commands.getstatusoutput("rmdir /mnt/gru")
+
+info("Menú de inicio recuperado")