文件操作 - eula.py
返回文件管理
返回主菜单
删除本文件
文件: /usr/lib/python2.7/site-packages/initial_setup/gui/spokes/eula.py
编辑文件内容
"""EULA spoke for the Initial Setup""" import gettext import logging from pyanaconda.ui.common import FirstbootOnlySpokeMixIn from pyanaconda.ui.gui.spokes import NormalSpoke from pyanaconda.constants import FIRSTBOOT_ENVIRON from pykickstart.constants import FIRSTBOOT_RECONFIG from initial_setup.product import get_license_file_name from initial_setup.common import LicensingCategory log = logging.getLogger("initial-setup") _ = lambda x: gettext.ldgettext("initial-setup", x) N_ = lambda x: x __all__ = ["EULAspoke"] class EULAspoke(FirstbootOnlySpokeMixIn, NormalSpoke): """The EULA spoke""" builderObjects = ["eulaBuffer", "eulaWindow"] mainWidgetName = "eulaWindow" uiFile = "eula.glade" # The EULA spoke is self-explanatory, so just redirect its # help button to the Initial Setup Hub help file, # which covers the overall theory of Initial Setup # usage. helpFile = "InitialSetupHub.xml" icon = "application-certificate-symbolic" title = N_("_LICENSE INFORMATION") category = LicensingCategory translationDomain = "initial-setup" def initialize(self): log.debug("initializing the EULA spoke") NormalSpoke.initialize(self) self._have_eula = True self._eula_buffer = self.builder.get_object("eulaBuffer") self._agree_check_button = self.builder.get_object("agreeCheckButton") self._agree_label = self._agree_check_button.get_child() self._agree_text = self._agree_label.get_text() log.debug("looking for the license file") license_file = get_license_file_name() if not license_file: log.error("no license found") self._have_eula = False self._eula_buffer.set_text(_("No license found. Please report this " "at http://bugs.centos.org")) return self._eula_buffer.set_text("") itr = self._eula_buffer.get_iter_at_offset(0) log.debug("opening the license file") with open(license_file, "r") as fobj: fobj_lines = fobj.xreadlines() # insert the first line without prefixing with space try: first_line = fobj_lines.next() except StopIteration: # nothing in the file return self._eula_buffer.insert(itr, first_line.strip()) # EULA file is preformatted for the console, we want to let Gtk # format it (blank lines should be preserved) for line in fobj_lines: stripped_line = line.strip() if stripped_line: self._eula_buffer.insert(itr, " " + stripped_line) else: self._eula_buffer.insert(itr, "\n\n") def refresh(self): self._agree_check_button.set_sensitive(self._have_eula) self._agree_check_button.set_active(self.data.eula.agreed) def apply(self): self.data.eula.agreed = self._agree_check_button.get_active() @property def completed(self): return not self._have_eula or self.data.eula.agreed @property def status(self): if not self._have_eula: return _("No license found") return _("License accepted") if self.data.eula.agreed else _("License not accepted") @classmethod def should_run(cls, environment, data): # the EULA spoke should only run in Initial Setup if environment == FIRSTBOOT_ENVIRON: # don't run if we are in reconfig mode and the EULA has already been accepted if data and data.firstboot.firstboot == FIRSTBOOT_RECONFIG and data.eula.agreed: log.debug("not running license spoke: reconfig mode & license already accepted") return False return True def on_check_button_toggled(self, checkbutton, *args): if self._agree_check_button.get_active(): log.debug("license is now accepted") self._agree_label.set_markup("<b>%s</b>" % self._agree_text) else: log.debug("license no longer accepted") self._agree_label.set_markup(self._agree_text)
修改文件时间
将文件时间修改为当前时间的前一年
删除文件