diff options
author | Matt Wilson <msw@redhat.com> | 1999-09-21 16:08:42 +0000 |
---|---|---|
committer | Matt Wilson <msw@redhat.com> | 1999-09-21 16:08:42 +0000 |
commit | 10395c942817f04a17481cabc9d25d1ba9678b6c (patch) | |
tree | a80d4a318dd48745baa638670c9e04088c4b8a42 | |
parent | c64619596343c12ae71aef5d1c44862f106c72b7 (diff) | |
download | anaconda-10395c942817f04a17481cabc9d25d1ba9678b6c.tar.gz anaconda-10395c942817f04a17481cabc9d25d1ba9678b6c.tar.xz anaconda-10395c942817f04a17481cabc9d25d1ba9678b6c.zip |
fork, exec for syslogd, shoot at rc parsing for language selection
-rwxr-xr-x | anaconda | 12 | ||||
-rwxr-xr-x | gui.py | 24 | ||||
-rw-r--r-- | iw/language.py | 5 | ||||
-rw-r--r-- | syslogd.py | 5 | ||||
-rw-r--r-- | todo.py | 18 |
5 files changed, 46 insertions, 18 deletions
@@ -1,6 +1,17 @@ #!/usr/bin/python import sys, os + +print sys.argv + +# Python passed my path as argv[0]! +# if sys.argv[0][-7:] == "syslogd": +if sys.argv[1] == "--syslogd": + from syslogd import Syslogd + root = sys.argv[2] + output = sys.argv[3] + syslog = Syslogd (root, open (output, "w+")) + import gettext import traceback import string @@ -146,6 +157,7 @@ if traceOnly: import urlinstall import mimetools import mimetypes + import syslogd for module in sys.__dict__['modules'].keys (): if module not in [ "__builtin__", "__main__" ]: foo = repr (sys.__dict__['modules'][module]) @@ -1,17 +1,10 @@ import gettext +import os cat = gettext.Catalog ("anaconda", "/usr/share/locale") def _(string): - return cat.gettext(string) - -def setLanguage (lang): - global cat - newlangs = [lang] - if len(lang) > 2: - newlangs.append(lang[:2]) - gettext.setlangs (newlangs) - cat = gettext.Catalog ("anaconda", "/usr/share/locale") + return cat.gettext(string) from gtk import * from gtk import _root_window @@ -219,6 +212,19 @@ class InstallInterface: self.finishedTODO.wait () class InstallControlWindow (Thread): + def setLanguage (self, lang): + global cat + + newlangs = [lang] + if len(lang) > 2: + newlangs.append(lang[:2]) + gettext.setlangs (newlangs) + cat = gettext.Catalog ("anaconda", "/usr/share/locale") + for l in newlangs: + if os.access ("/etc/gtk/gtkrc." + l, os.R_OK): + rc_parse("/etc/gtk/gtkrc." + l) + print "loaded gtkrc." + l + self.window.reset_rc_styles () def instantiateWindow (self, windowClass): ics = InstallControlState (self, self.ii, self.todo) diff --git a/iw/language.py b/iw/language.py index ef3a3a67e..6877503f0 100644 --- a/iw/language.py +++ b/iw/language.py @@ -1,6 +1,6 @@ from gtk import * from iw import * -from gui import _, setLanguage +from gui import _ class LanguageWindow (InstallWindow): @@ -11,6 +11,7 @@ class LanguageWindow (InstallWindow): ics.setPrevEnabled (0) ics.setNextEnabled (1) ics.readHTML ("lang") + self.icw = ics.getICW () self.question = (_("What language should be used during the " "installation process?")) self.languages = self.todo.language.available () @@ -20,7 +21,7 @@ class LanguageWindow (InstallWindow): if self.running: lang = clist.get_text (clist.selection[0], 0) self.todo.language.set (lang) - setLanguage (self.languages[lang]) + self.icw.setLanguage (self.languages[lang]) def getScreen (self): mainBox = GtkVBox (FALSE, 10) diff --git a/syslogd.py b/syslogd.py index 6fc6aa902..76704e6f9 100644 --- a/syslogd.py +++ b/syslogd.py @@ -5,7 +5,6 @@ from socket import * from select import select class Syslogd: - def goSyslog(self, output, sockName): sock = socket(AF_UNIX, SOCK_STREAM) @@ -46,6 +45,4 @@ class Syslogd: def __init__(self, root = "", output = sys.stdout, socket = "/dev/log"): output = output filename = root + socket; - self.child = os.fork() - if (not self.child): - self.goSyslog(output, filename) + self.goSyslog(output, filename) @@ -1,7 +1,6 @@ import rpm, os import iutil, isys from lilo import LiloConfiguration -from syslogd import Syslogd import string import socket import crypt @@ -312,6 +311,19 @@ class Drives: def available (self): return isys.hardDriveList () +class InstSyslog: + def __init__ (self, root, log): + self.pid = os.fork () + if not self.pid: + if os.access ("./anaconda", os.X_OK): + path = "./anaconda" + else: + path = "/usr/bin/anaconda" + os.execv (path, ("syslogd", "--syslogd", root, log)) + + def __del__ (self): + os.kill (self.pid, 15) + class ToDo: def __init__(self, intf, method, rootPath, setupFilesystems = 1, installSystem = 1, mouse = None, instClass = None, x = None, @@ -1290,7 +1302,7 @@ class ToDo: logname = '/tmp/install.log' self.instLog = open(self.instPath + logname, "w+") - syslog = Syslogd(root = self.instPath, output = self.instLog) + syslog = InstSyslog (self.instPath, self.instPath + logname) ts.scriptFd = self.instLog.fileno () # the transaction set dup()s the file descriptor and will close the @@ -1398,7 +1410,7 @@ class ToDo: #os.unlink(path) - del syslog + del syslog w.pop () |