Старый postinstall
This commit is contained in:
commit
4337a3f94e
349 changed files with 21945 additions and 0 deletions
57
deb_dist/postinstall-1.0.1/postinstall/option/update.py
Normal file
57
deb_dist/postinstall-1.0.1/postinstall/option/update.py
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
import subprocess
|
||||
from dialog import Dialog
|
||||
from postinstall.logger import logger
|
||||
|
||||
logging = logger
|
||||
|
||||
|
||||
def run_update():
|
||||
d = Dialog(dialog="dialog")
|
||||
|
||||
code = d.yesno("Вы действительно хотите обновить систему?", width=50)
|
||||
if code != d.OK:
|
||||
return
|
||||
|
||||
commands = [["apt", "update"], ["apt", "upgrade", "-y"]]
|
||||
|
||||
d.gauge_start("Обновление системы", percent=0)
|
||||
|
||||
try:
|
||||
for i, command in enumerate(commands):
|
||||
d.gauge_update(i * 50, f"Выполняется: {' '.join(command)}")
|
||||
|
||||
process = subprocess.Popen(
|
||||
["sudo"] + command,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
universal_newlines=True,
|
||||
)
|
||||
|
||||
while True:
|
||||
line = process.stdout.readline()
|
||||
if not line:
|
||||
break
|
||||
d.gauge_update(i * 50 + (50 if i == 1 else 25), line.strip())
|
||||
|
||||
process.wait()
|
||||
|
||||
if process.returncode != 0:
|
||||
error = process.stderr.read()
|
||||
raise subprocess.CalledProcessError(process.returncode, command, error)
|
||||
|
||||
d.gauge_update(100, "Обновление системы завершено успешно")
|
||||
d.gauge_stop()
|
||||
except subprocess.CalledProcessError as e:
|
||||
logging.error(f"Ошибка при обновлении системы: {e}")
|
||||
d.gauge_stop()
|
||||
d.msgbox(f"Ошибка при обновлении системы: {e}")
|
||||
except Exception as e:
|
||||
logging.error(f"Неожиданная ошибка при обновлении системы: {e}")
|
||||
d.gauge_stop()
|
||||
d.msgbox(f"Неожиданная ошибка при обновлении системы: {e}")
|
||||
|
||||
d.msgbox("Обновление системы завершено", width=50)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run_update()
|
||||
Loading…
Add table
Add a link
Reference in a new issue