#!/usr/bin/python2.7 # # Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. # import curses import logging from sys import exit from __init__ import _ from screen_list import start_screen_list from main_window import MainWindow from media_scan import MediaScreen from device_scan import DeviceScreen LOG_LOCATION = "/tmp/ddu_log" LOG_FORMAT = "%(asctime)s - %(levelname)-8s: %(filename)s:%(lineno)d \ %(message)s" LOG_LEVEL = 5 def setup_curses(): initscr = curses.initscr() if curses.has_colors(): curses.start_color() curses.noecho() curses.cbreak() try: curses.curs_set(0) except curses.error: pass return initscr def cleanup_curses(): curses.echo() curses.nocbreak() curses.endwin() def exit_text_installer(): logging.info("**** END ****") print _("Exiting Text Installer. Log is available at:\n%s") % LOG_LOCATION exit() def setup_logging(): logging.basicConfig(filename=LOG_LOCATION, level=LOG_LEVEL, filemode='a', format=LOG_FORMAT) logging.addLevelName(5, "INPUT") logging.info("**** START ****") def make_screen_list(main_win): result = [] result.append(DeviceScreen(main_win)) result.append(MediaScreen(main_win)) return result if __name__ == '__main__': setup_logging() try: initscr = setup_curses() win_size_y, win_size_x = initscr.getmaxyx() if win_size_y < 24 or win_size_x < 80: cleanup_curses() print _("Terminal too small. Min size is 80x24\n"), "\r" exit_text_installer() main_win = MainWindow(initscr) win_list = make_screen_list(main_win) screen = start_screen_list(win_list) while screen is not None: screen = screen.show() finally: cleanup_curses() exit_text_installer()