#!/usr/bin/python # coding: utf-8 # # DESCRIPTION: install for OS # # SCRIPT NAME: ri_install.py # # Input: # [-d|--display display-mode ] install display (tk or cli) # [-l|--language language] insatll display language (chinese or english) # # MENTOR: Li Zhi # # AUTHOR: Ling Fen # # EMAIL: fling@linx-info.com # # DATE: 2010-09-20 import sys import getopt import ri_oper import os def install_over(ret): if ri_oper.Rate.value == 100 and ret == 0: if display.set_task_over(): print "reboot ..." os.system("reboot") else: display.root_destroy() def main(): global has_run if has_run: return has_run = True for instance in oper_list: ret = instance.install() if ret: display.error(instance, ret) break else: ri_oper.display_sub_operation((ri_oper.language=='chinese' \ and instance.chinese_name or instance.english_name)+\ (ri_oper.language=='chinese' and u' 成功' or ' success')) install_over(ret) has_run = False oper_list = [ri_oper.MakeRaid(5),ri_oper.Format(5),ri_oper.Mount(5),ri_oper.InstallPkg(40),ri_oper.MakeRaidConfigure(5),ri_oper.ConfigureFstab(5),ri_oper.GenerateIssue(5),ri_oper.ConfigureNetwork(5),ri_oper.MakeServiceAutoBoot(5),ri_oper.CopyKernel(5),ri_oper.ConfigureBootloader(5),ri_oper.BootLoader(5),ri_oper.ExecFinishInstall(5)] def print_usages(): print 'Usages: %s [-l|--language language] [-d|--display display-mode]' %sys.argv[0] try: opts, args = getopt.getopt(sys.argv[1:], "l:d:", ["language=", "display="]) except getopt.GetoptError: print_usages() sys.exit(1) ri_oper.language='english' disp = 'ri_inst_cli' for opt,arg in opts: if opt in ("-l","--language"): ri_oper.language=arg.lower() elif opt in ("-d", "--display"): disp = 'ri_inst_%s' %arg.lower() exec 'import %s as display' %disp ri_oper.display_operation = display.set_task ri_oper.display_sub_operation = display.set_sub_task ri_oper.display_scale = display.set_task_scale display.start(main)