|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/22697/root/usr/share/firstboot/ |
Upload File : |
#!/usr/bin/python2
#
# firstboot.py - configuration and convenience functions in a single class
#
# Copyright (C) 2002, 2003, 2005 Red Hat, Inc.
# Copyright (C) 2002, 2003 Brent Fox <bfox@redhat.com>
# Copyright (C) 2005 Chris Lumens <clumens@redhat.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
import rhpl.Conf
import os
import snack
import firstbootBackend
FILENAME = "/etc/sysconfig/firstboot"
def start_process(path, args = None):
if args == None:
args = [path]
else:
args = [path, args]
child = os.fork()
if not child:
os.execvp(path, args)
os._exit(1)
return child
class Firstboot:
def __init__(self):
self.doDebug = False
self.doReconfig = False
self.wm_pid = None
self.xserver_pid = None
self.lowRes = False
self.rhgb = False
self.autoscreenshot = False
self.forcegui = False
#Let's check to see if firstboot should be run or not
#If we're in debug mode, run anyway even if the file exists.
def mayRun(self):
if not self.doDebug and not self.doReconfig:
#Well first, is this even being run as root?
if os.getuid() > 0 or os.geteuid() > 0:
print "You must be root to run firstboot."
return False
#We're not in debug mode, so do some checking
#First, look and see if /etc/sysconfig/firstboot exists
if os.access(FILENAME, os.R_OK):
conf = rhpl.Conf.ConfShellVar(FILENAME)
if conf.has_key("RUN_FIRSTBOOT"):
if conf["RUN_FIRSTBOOT"].upper() == "NO":
# Firstboot should not be run
return False
# If we're in debug mode, or the file doesn't exist, or RUN_FIRSTBOOT
# isn't in it, or RUN_FIRSTBOOT isn't NO, run.
return True
# Sets up the text UI and assumes control. The caller will never be
# returned to and firstboot will exit from within here.
def runTextUI(self):
import textWindow
screen = snack.SnackScreen()
result = 0
while result >= 0:
# Keep running the program until either the timer has expired or
# the user pressed Exit
screen = snack.SnackScreen()
result = textWindow.TextWindow()(screen)
if result == -1:
# They're done with firstboot. Exit for good.
screen.finish()
firstbootBackend.writeSysconfigFile(self.doDebug)
if self.doReconfig:
try:
os.unlink("/etc/reconfigSys")
except:
pass
os._exit(0)
elif result == -2:
# Timer expired. Don't remove the reconfig file if it exists.
screen.finish()
os._exit(0)