diff options
Diffstat (limited to 'scripts/lib')
-rw-r--r-- | scripts/lib/wic/3rdparty/pykickstart/parser.py | 87 | ||||
-rw-r--r-- | scripts/lib/wic/3rdparty/pykickstart/version.py | 29 |
2 files changed, 2 insertions, 114 deletions
diff --git a/scripts/lib/wic/3rdparty/pykickstart/parser.py b/scripts/lib/wic/3rdparty/pykickstart/parser.py index 840a448673..9c9674bf73 100644 --- a/scripts/lib/wic/3rdparty/pykickstart/parser.py +++ b/scripts/lib/wic/3rdparty/pykickstart/parser.py | |||
@@ -38,8 +38,6 @@ import sys | |||
38 | import tempfile | 38 | import tempfile |
39 | from copy import copy | 39 | from copy import copy |
40 | from optparse import * | 40 | from optparse import * |
41 | from urlgrabber import urlread | ||
42 | import urlgrabber.grabber as grabber | ||
43 | 41 | ||
44 | import constants | 42 | import constants |
45 | from errors import KickstartError, KickstartParseError, KickstartValueError, formatErrorMsg | 43 | from errors import KickstartError, KickstartParseError, KickstartValueError, formatErrorMsg |
@@ -55,87 +53,6 @@ STATE_COMMANDS = "commands" | |||
55 | 53 | ||
56 | ver = version.DEVEL | 54 | ver = version.DEVEL |
57 | 55 | ||
58 | def _preprocessStateMachine (lineIter): | ||
59 | l = None | ||
60 | lineno = 0 | ||
61 | |||
62 | # Now open an output kickstart file that we are going to write to one | ||
63 | # line at a time. | ||
64 | (outF, outName) = tempfile.mkstemp("-ks.cfg", "", "/tmp") | ||
65 | |||
66 | while True: | ||
67 | try: | ||
68 | l = lineIter.next() | ||
69 | except StopIteration: | ||
70 | break | ||
71 | |||
72 | # At the end of the file? | ||
73 | if l == "": | ||
74 | break | ||
75 | |||
76 | lineno += 1 | ||
77 | url = None | ||
78 | |||
79 | ll = l.strip() | ||
80 | if not ll.startswith("%ksappend"): | ||
81 | os.write(outF, l) | ||
82 | continue | ||
83 | |||
84 | # Try to pull down the remote file. | ||
85 | try: | ||
86 | ksurl = ll.split(' ')[1] | ||
87 | except: | ||
88 | raise KickstartParseError, formatErrorMsg(lineno, msg=_("Illegal url for %%ksappend: %s") % ll) | ||
89 | |||
90 | try: | ||
91 | url = grabber.urlopen(ksurl) | ||
92 | except grabber.URLGrabError, e: | ||
93 | raise KickstartError, formatErrorMsg(lineno, msg=_("Unable to open %%ksappend file: %s") % e.strerror) | ||
94 | else: | ||
95 | # Sanity check result. Sometimes FTP doesn't catch a file | ||
96 | # is missing. | ||
97 | try: | ||
98 | if url.size < 1: | ||
99 | raise KickstartError, formatErrorMsg(lineno, msg=_("Unable to open %%ksappend file")) | ||
100 | except: | ||
101 | raise KickstartError, formatErrorMsg(lineno, msg=_("Unable to open %%ksappend file")) | ||
102 | |||
103 | # If that worked, write the remote file to the output kickstart | ||
104 | # file in one burst. Then close everything up to get ready to | ||
105 | # read ahead in the input file. This allows multiple %ksappend | ||
106 | # lines to exist. | ||
107 | if url is not None: | ||
108 | os.write(outF, url.read()) | ||
109 | url.close() | ||
110 | |||
111 | # All done - close the temp file and return its location. | ||
112 | os.close(outF) | ||
113 | return outName | ||
114 | |||
115 | def preprocessFromString (s): | ||
116 | """Preprocess the kickstart file, provided as the string str. This | ||
117 | method is currently only useful for handling %ksappend lines, | ||
118 | which need to be fetched before the real kickstart parser can be | ||
119 | run. Returns the location of the complete kickstart file. | ||
120 | """ | ||
121 | i = iter(s.splitlines(True) + [""]) | ||
122 | rc = _preprocessStateMachine (i.next) | ||
123 | return rc | ||
124 | |||
125 | def preprocessKickstart (f): | ||
126 | """Preprocess the kickstart file, given by the filename file. This | ||
127 | method is currently only useful for handling %ksappend lines, | ||
128 | which need to be fetched before the real kickstart parser can be | ||
129 | run. Returns the location of the complete kickstart file. | ||
130 | """ | ||
131 | try: | ||
132 | fh = urlopen(f) | ||
133 | except grabber.URLGrabError, e: | ||
134 | raise KickstartError, formatErrorMsg(0, msg=_("Unable to open input kickstart file: %s") % e.strerror) | ||
135 | |||
136 | rc = _preprocessStateMachine (iter(fh.readlines())) | ||
137 | fh.close() | ||
138 | return rc | ||
139 | 56 | ||
140 | class PutBackIterator(Iterator): | 57 | class PutBackIterator(Iterator): |
141 | def __init__(self, iterable): | 58 | def __init__(self, iterable): |
@@ -682,8 +599,8 @@ class KickstartParser: | |||
682 | self.currentdir[self._includeDepth] = cd | 599 | self.currentdir[self._includeDepth] = cd |
683 | 600 | ||
684 | try: | 601 | try: |
685 | s = urlread(f) | 602 | s = file(f).read() |
686 | except grabber.URLGrabError, e: | 603 | except IOError, e: |
687 | raise KickstartError, formatErrorMsg(0, msg=_("Unable to open input kickstart file: %s") % e.strerror) | 604 | raise KickstartError, formatErrorMsg(0, msg=_("Unable to open input kickstart file: %s") % e.strerror) |
688 | 605 | ||
689 | self.readKickstartFromString(s, reset=False) | 606 | self.readKickstartFromString(s, reset=False) |
diff --git a/scripts/lib/wic/3rdparty/pykickstart/version.py b/scripts/lib/wic/3rdparty/pykickstart/version.py index 102cc37d80..8a8e6aad22 100644 --- a/scripts/lib/wic/3rdparty/pykickstart/version.py +++ b/scripts/lib/wic/3rdparty/pykickstart/version.py | |||
@@ -44,7 +44,6 @@ This module also exports several functions: | |||
44 | have a version= comment in it. | 44 | have a version= comment in it. |
45 | """ | 45 | """ |
46 | import imputil, re, sys | 46 | import imputil, re, sys |
47 | from urlgrabber import urlopen | ||
48 | 47 | ||
49 | import gettext | 48 | import gettext |
50 | _ = lambda x: gettext.ldgettext("pykickstart", x) | 49 | _ = lambda x: gettext.ldgettext("pykickstart", x) |
@@ -132,34 +131,6 @@ def versionToString(version, skipDevel=False): | |||
132 | 131 | ||
133 | raise KickstartVersionError(_("Unsupported version specified: %s") % version) | 132 | raise KickstartVersionError(_("Unsupported version specified: %s") % version) |
134 | 133 | ||
135 | def versionFromFile(f): | ||
136 | """Given a file or URL, look for a line starting with #version= and | ||
137 | return the version number. If no version is found, return DEVEL. | ||
138 | """ | ||
139 | v = DEVEL | ||
140 | |||
141 | fh = urlopen(f) | ||
142 | |||
143 | while True: | ||
144 | try: | ||
145 | l = fh.readline() | ||
146 | except StopIteration: | ||
147 | break | ||
148 | |||
149 | # At the end of the file? | ||
150 | if l == "": | ||
151 | break | ||
152 | |||
153 | if l.isspace() or l.strip() == "": | ||
154 | continue | ||
155 | |||
156 | if l[:9] == "#version=": | ||
157 | v = stringToVersion(l[9:].rstrip()) | ||
158 | break | ||
159 | |||
160 | fh.close() | ||
161 | return v | ||
162 | |||
163 | def returnClassForVersion(version=DEVEL): | 134 | def returnClassForVersion(version=DEVEL): |
164 | """Return the class of the syntax handler for version. version can be | 135 | """Return the class of the syntax handler for version. version can be |
165 | either a string or the matching constant. Raises KickstartValueError | 136 | either a string or the matching constant. Raises KickstartValueError |