"""
-from __future__ import with_statement
+# from __future__ import with_statement
from optparse import OptionParser
from inspect import isroutine, isclass
import datetime, logging, os, re, subprocess, sys, tempfile, time
# global variables
-PROG_VERSION = "0.9.8"
+PROG_VERSION = "0.9.9"
MOUNTED = set() # register mountpoints
TMPFILES = set() # register tmpfiles
DATESTAMP = time.mktime(datetime.datetime.now().timetuple()) # unique identifier for syslinux.cfg
insmod fat
-if font /boot/grub/ascii.pff ; then
+if loadfont /boot/grub/ascii.pf2 ; then
insmod png
set gfxmode=640x480
insmod gfxterm
insmod vbe
- terminal gfxterm
+ if terminal_output.gfxterm ; then true ; else
+ # For backward compatibility with versions of terminal.mod that don't
+ # understand terminal_output
+ terminal gfxterm
+ fi
fi
if background_image /boot/grub/grml.png ; then
device_mountpoint = tempfile.mkdtemp(prefix="grml2usb")
register_tmpfile(device_mountpoint)
try:
- mount(device, device_mountpoint, "")
- logging.debug("grub-install --recheck --no-floppy --root-directory=%s %s", device_mountpoint, device)
- proc = subprocess.Popen(["grub-install", "--recheck", "--no-floppy",
- "--root-directory=%s" % device_mountpoint, device], stdout=file(os.devnull, "r+"))
- proc.wait()
- if proc.returncode != 0:
- # raise Exception("error executing grub-install")
- logging.critical("Fatal: error executing grub-install (please check the grml2usb FAQ)")
+ try:
+ mount(device, device_mountpoint, "")
+ logging.debug("grub-install --recheck --no-floppy --root-directory=%s %s", device_mountpoint, device)
+ proc = subprocess.Popen(["grub-install", "--recheck", "--no-floppy",
+ "--root-directory=%s" % device_mountpoint, device], stdout=file(os.devnull, "r+"))
+ proc.wait()
+ if proc.returncode != 0:
+ # raise Exception("error executing grub-install")
+ logging.critical("Fatal: error executing grub-install (please check the grml2usb FAQ)")
+ cleanup()
+ sys.exit(1)
+ except CriticalException, error:
+ logging.critical("Fatal: %s" % error)
cleanup()
sys.exit(1)
- except CriticalException, error:
- logging.critical("Fatal: %s" % error)
- cleanup()
- sys.exit(1)
finally:
unmount(device_mountpoint, "")
proc.wait()
# font file for graphical bootsplash in grub
- if os.path.isfile("/usr/share/grub/ascii.pff"):
- logging.debug("rsync -rlptDH --inplace /usr/share/grub/ascii.pff to %s" % grub_target + 'ascii.pff')
- proc = subprocess.Popen(["rsync", "-rlptDH", "--inplace", '/usr/share/grub/ascii.pff',
- grub_target + 'ascii.pff'])
+ if os.path.isfile("/usr/share/grub/ascii.pf2"):
+ logging.debug("rsync -rlptDH --inplace /usr/share/grub/ascii.pf2 to %s" % grub_target + 'ascii.pf2')
+ proc = subprocess.Popen(["rsync", "-rlptDH", "--inplace", '/usr/share/grub/ascii.pf2',
+ grub_target + 'ascii.pf2'])
proc.wait()
sys.exit(1)
try:
- grml_flavour = identify_grml_flavour(live_image)
- logging.info("Identified grml flavour \"%s\"." % grml_flavour)
- install_iso_files(grml_flavour, live_image, device, device_mountpoint)
- except TypeError:
- logging.critical("Fatal: a critical error happend during execution (not a grml ISO?), giving up")
- sys.exit(1)
+ try:
+ grml_flavour = identify_grml_flavour(live_image)
+ logging.info("Identified grml flavour \"%s\"." % grml_flavour)
+ install_iso_files(grml_flavour, live_image, device, device_mountpoint)
+ except TypeError:
+ logging.critical("Fatal: a critical error happend during execution (not a grml ISO?), giving up")
+ sys.exit(1)
finally:
if remove_device_mountpoint:
try:
sys.exit(1)
try:
- grml_flavour = identify_grml_flavour(iso_mountpoint)
- logging.info("Identified grml flavour \"%s\"." % grml_flavour)
- install_iso_files(grml_flavour, iso_mountpoint, device, device_mountpoint)
- except TypeError:
- logging.critical("Fatal: a critical error happend during execution (not a grml ISO?), giving up")
- sys.exit(1)
+ try:
+ grml_flavour = identify_grml_flavour(iso_mountpoint)
+ logging.info("Identified grml flavour \"%s\"." % grml_flavour)
+ install_iso_files(grml_flavour, iso_mountpoint, device, device_mountpoint)
+ except TypeError:
+ logging.critical("Fatal: a critical error happend during execution (not a grml ISO?), giving up")
+ sys.exit(1)
finally:
if os.path.isdir(iso_mountpoint) and remove_iso_mountpoint:
unmount(iso_mountpoint, "")