osgos_postinstall/deb_dist/postinstall-1.5.0/build/lib/postinstall/option/autostart.py

59 lines
1.9 KiB
Python

import os
from dialog import Dialog
from postinstall.logger import logger
logging = logger
AUTOSTART_FILE = "/usr/share/postinstall/.norestart"
class AutoStartScreen:
def __init__(self):
self.d = Dialog(dialog="dialog")
def check_auto_start(self) -> bool:
return not os.path.exists(AUTOSTART_FILE)
def set_auto_start(self, enable: bool) -> None:
try:
if enable:
try:
if os.path.exists(AUTOSTART_FILE):
os.remove(AUTOSTART_FILE)
except Exception as e:
logging.error(f"Ошибка при включении автозапуска: {e}")
else:
with open(AUTOSTART_FILE, "w") as f:
f.write("# Это файл создан для отключения автозапуска\n")
except Exception as e:
logging.error(f"Ошибка при изменении автозапуска: {e}")
def show_screen(self):
auto_start_enabled = self.check_auto_start()
code, tags = self.d.checklist(
"Выберите действие",
choices=[
("autostart", "Автозапуск при следующем запуске", auto_start_enabled)
],
title="Настройки автозапуска",
backtitle="Postinstall Configuration",
ok_label="Применить",
cancel_label="Назад",
)
if code == self.d.OK:
self.set_auto_start("autostart" in tags)
self.d.msgbox("Изменения сохранены.")
else:
logging.info("Изменения отменены пользователем.")
def main():
auto_start_screen = AutoStartScreen()
auto_start_screen.show_screen()
if __name__ == "__main__":
main()