Files
new_install/StateGrid/state_grid.py
Peng Zhihui 21c3272eea Add auto install, HdInstall and state grid custom install
new file:   AutoInstall/auto_install.py
	new file:   StateGrid/state_grid.py
	modified:   interface/ri_data.py
	modified:   operation/exec_finish_install.sh
	new file:   operation/finish_install.py
	renamed:    operation/99finish_install.sh -> operation/finish_install/99finish_install.sh
	new file:   xml/install.xml
2014-02-24 10:44:53 +08:00

86 lines
2.8 KiB
Python
Executable File

#!/usr/bin/env python
from snack import *
from xml.dom import minidom
from xml.dom.ext import PrettyPrint
import sys
sys.path.append('../interface/')
sys.path.append('../text/')
import ri_newt
import ri_data
install_xml = '/var/install/install.xml'
class Username(ri_newt.Screen):
def __init__(self):
ri_newt.Screen.__init__(self, name='username',title='StateGrid custom install')
ri_newt.Screen.screen.pushHelpLine('<Tab> moves; <Space> selects; <Enter> activates buttons')
self.text = 'This username will use as State Grid user. Can not be a system user or reserver user. Please enter username:'
ri_newt.Screen.widget_textboxreflowed(80, self.text)
ri_newt.Screen.widget_buttonbar([('Continue','ok','F12')])
def set_data(self):
ri_newt.Screen.widget_entry(75, text='')
s = ri_newt.Screen.yesno('[!!] State Grid custom install', 1, 5, 'TextboxReflowed', 'eLabel', 'Entry', 'eLabel', 'ButtonBar')
if s == 0:
ri_data.StateGrid.username = ri_newt.Screen.entry.value()
return s
class HomeDirectory(ri_newt.Screen):
def __init__(self):
ri_newt.Screen.__init__(self, name='home_dir',title='StateGrid custom install')
ri_newt.Screen.screen.pushHelpLine('<Tab> moves; <Space> selects; <Enter> activates buttons')
self.text = 'This directory will use as State Grid user home directory. Can not be /home/{sysadmin,netadmin,secadmin,audadmin}.\n\nPlease enter home directory:'
ri_newt.Screen.widget_textboxreflowed(80, self.text)
ri_newt.Screen.widget_buttonbar([('Continue','ok','F12')])
def set_data(self):
ri_newt.Screen.widget_entry(75, text='')
s = ri_newt.Screen.yesno('[!!] State Grid custom install', 1, 5, 'TextboxReflowed', 'eLabel', 'Entry', 'eLabel', 'ButtonBar')
if s == 0:
ri_data.StateGrid.home_dir = ri_newt.Screen.entry.value()
return s
class Shell(ri_newt.Screen):
def __init__(self):
ri_newt.Screen.__init__(self, name='shell',title='StateGrid custom install')
ri_newt.Screen.screen.pushHelpLine('<Tab> moves; <Space> selects; <Enter> activates buttons')
self.text = 'This shell will use as State Grid user shell, Please enter user shell:'
ri_newt.Screen.widget_textboxreflowed(80, self.text)
ri_newt.Screen.widget_buttonbar([('Continue','ok','F12')])
def set_data(self):
ri_newt.Screen.widget_entry(75, text='')
s = ri_newt.Screen.yesno('[!!] State Grid custom install', 1, 5, 'TextboxReflowed', 'eLabel', 'Entry', 'eLabel', 'ButtonBar')
if s == 0:
ri_data.StateGrid.shell = ri_newt.Screen.entry.value()
if __name__ == "__main__":
Username()
ri_newt.Screen.dict['username'].set_data()
HomeDirectory()
ri_newt.Screen.dict['home_dir'].set_data()
Shell()
ri_newt.Screen.dict['shell'].set_data()
xmldoc = minidom.parse(install_xml)
root = xmldoc.firstChild
f = file(install_xml,'w')
ri_data.StateGrid.to_xml(xmldoc, root)
PrettyPrint(xmldoc, f)
f.close()
ri_newt.Screen.screen.finish()