def get_debconf(): debconf.runFrontEnd() db = debconf.Debconf() try: yield db finally: db.stop()
def __init__(self, template, title=None, priority='high', subst='CHOICES'): debconf.runFrontEnd() self.template = template self.db = debconf.Debconf(title) self.db.capb('backup') self.priority = priority self.subst = subst
def target_mounted(target="/target"): if not os.path.exists(target) or not is_mounted(target): debconf.runFrontEnd() db = debconf.Debconf() db.capb("backup") db.input(debconf.CRITICAL, "base-installer/no_target_mounted") db.go() return False return True
def preset_debconf(resets=None, preseeds=None, seen=None): debconf.runFrontEnd() db = debconf.Debconf() if resets: for template in resets: db.reset(template) if preseeds: for template, value in preseeds: db.set(template, value) if seen: for template, value in seen: db.fset(template, "seen", value)
def start_debconf(): """debconf_ui needs to run within a debconf frontend.""" if 'DEBIAN_HAS_FRONTEND' in os.environ: # debconf already started, so just clean up the configuration file # if any (debconf has already read it by now). if 'DEBCONF_SYSTEMRC' in os.environ: osextras.unlink_force(os.environ['DEBCONF_SYSTEMRC']) return print("debconf_ui selected; starting debconf frontend", file=sys.stderr) if 'UBIQUITY_AUTOMATIC' in os.environ: # In automatic mode, we don't want debconf to reshow seen questions, # since that defeats the purpose of preseeding. pass elif 'DEBCONF_USE_CDEBCONF' not in os.environ: # This is rather unsatisfactory. Perhaps it would be better to # have a custom debconf program, a bit like dpkg-reconfigure. import tempfile debconfrc_fd, debconfrc = tempfile.mkstemp() os.chmod(debconfrc, 0o644) debconfrc_file = os.fdopen(debconfrc_fd, 'w') orig_debconfrc = open('/etc/debconf.conf') state = 0 for line in orig_debconfrc: if (state == 0 and line.rstrip('\n') and not line.startswith('#')): state = 1 elif state == 1 and not line.rstrip('\n'): print('Reshow: true', file=debconfrc_file) state = 2 print(line, end="", file=debconfrc_file) orig_debconfrc.close() debconfrc_file.close() os.environ['DEBCONF_SYSTEMRC'] = debconfrc else: os.environ['DEBCONF_SHOWOLD'] = 'true' if 'DEBCONF_USE_CDEBCONF' not in os.environ: os.environ['DEBCONF_PACKAGE'] = 'ubiquity' # TODO: need to set owner somehow for the cdebconf case import debconf debconf.runFrontEnd() # re-execs this program
def get_locales(self): """set timezone and keymap attributes from debconf. It uses the same values the user have selected on live system. get_locales() -> timezone, keymap, locales""" debconf.runFrontEnd() db = debconf.Debconf() try: self.timezone = db.get('express/timezone') if self.timezone == '': self.timezone = db.get('tzconfig/choose_country_zone_multiple') except: self.timezone = open('/etc/timezone').readline().strip() self.keymap = db.get('debian-installer/keymap') self.locales = db.get('locales/default_environment_locale') return True
def get_locales(self): '''get_locales() -> timezone, keymap, locales Get the timezone, keymap and locales from the Debconf database and return them. ''' debconf.runFrontEnd() db = debconf.Debconf() try: self.timezone = db.get('express/timezone') if self.timezone == '': self.timezone = db.get('tzconfig/choose_country_zone_multiple') except: self.timezone = open('/etc/timezone').readline().strip() self.keymap = db.get('debian-installer/keymap') self.locales = db.get('locales/default_environment_locale') return True
def __init__(self): debconf.runFrontEnd() self.db = debconf.Debconf()
def __init__(self): debconf.runFrontEnd() self.db = debconf.Debconf() self.db.capb("backup")