[Fedora-livecd-list] [PATCH] Allow for http://, ftp://, or file:// urls to be passed in to the image creators using urlgrabber. This verison delagets all work to urlgrabber and all error checking to the kickstart parser

Bryan Kearney bkearney at redhat.com
Tue Nov 25 15:55:25 UTC 2008


---
 imgcreate/kickstart.py |    4 +++-
 livecd-tools.spec      |    1 +
 tools/livecd-creator   |    6 +++---
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/imgcreate/kickstart.py b/imgcreate/kickstart.py
index c97eb08..d3ef9c9 100644
--- a/imgcreate/kickstart.py
+++ b/imgcreate/kickstart.py
@@ -22,6 +22,7 @@ import shutil
 import subprocess
 import time
 import logging
+import urlgrabber
 
 import rhpl.keyboard
 
@@ -47,7 +48,8 @@ def read_kickstart(path):
     version = ksversion.makeVersion()
     ks = ksparser.KickstartParser(version)
     try:
-        ks.readKickstart(path)
+        ksfile = urlgrabber.urlgrab(path)
+        ks.readKickstart(ksfile)    
     except IOError, (err, msg):
         raise errors.KickstartError("Failed to read kickstart file "
                                     "'%s' : %s" % (path, msg))
diff --git a/livecd-tools.spec b/livecd-tools.spec
index 7ab1468..215b576 100644
--- a/livecd-tools.spec
+++ b/livecd-tools.spec
@@ -21,6 +21,7 @@ Requires: pykickstart >= 0.96
 Requires: dosfstools >= 2.11-8
 Requires: isomd5sum
 Requires: rhpl
+Requires: python-urlgrabber
 %ifarch %{ix86} x86_64
 Requires: syslinux
 %endif
diff --git a/tools/livecd-creator b/tools/livecd-creator
index b401190..6d84e4c 100755
--- a/tools/livecd-creator
+++ b/tools/livecd-creator
@@ -36,7 +36,7 @@ def parse_options(args):
     imgopt = optparse.OptionGroup(parser, "Image options",
                                   "These options define the created image.")
     imgopt.add_option("-c", "--config", type="string", dest="kscfg",
-                      help="Path to kickstart config file")
+                      help="Path or url to kickstart config file")
     imgopt.add_option("-b", "--base-on", type="string", dest="base_on",
                       help="Add packages to an existing live CD iso9660 image.")
     imgopt.add_option("-f", "--fslabel", type="string", dest="fs_label",
@@ -67,8 +67,8 @@ def parse_options(args):
                       help=optparse.SUPPRESS_HELP)
 
     (options, args) = parser.parse_args()
-    if not options.kscfg or not os.path.isfile(options.kscfg):
-        raise Usage("Kickstart config '%s' does not exist" %(options.kscfg,))
+    if not options.kscfg:
+        raise Usage("Kickstart file must be provided")
     if options.base_on and not os.path.isfile(options.base_on):
         raise Usage("Live CD ISO '%s' does not exist" %(options.base_on,))
     if options.fs_label and len(options.fs_label) > imgcreate.FSLABEL_MAXLEN:
-- 
1.5.6.5




More information about the livecd mailing list