mirror of
https://github.com/Derisis13/barusu.git
synced 2025-12-06 19:42:48 +01:00
Refactor: apt and dconf restorations have separate functions
This commit is contained in:
77
main.py
77
main.py
@@ -18,6 +18,7 @@ import getopt
|
|||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
from typing import TextIO
|
||||||
|
|
||||||
|
|
||||||
def run_daily():
|
def run_daily():
|
||||||
@@ -33,58 +34,64 @@ def run_daily():
|
|||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
def list_pkgs():
|
def list_apt_packages():
|
||||||
f = open("packages.txt", "w")
|
f = open("packages.txt", "w")
|
||||||
subprocess.run(args=["dpkg", "--get-selections"], stdout=f)
|
subprocess.run(args=["dpkg", "--get-selections"], stdout=f)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
def save_settings():
|
def save_dconf_settings():
|
||||||
f = open("dconf_out.txt", "w")
|
f = open("dconf_out.txt", "w")
|
||||||
subprocess.run(args=["dconf", "dump", "/"], stdout=f)
|
subprocess.run(args=["dconf", "dump", "/"], stdout=f)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
|
def restore_apt_packages():
|
||||||
|
if os.getuid() == 0:
|
||||||
|
try:
|
||||||
|
packagelist = open("packages.txt", "r")
|
||||||
|
except FileNotFoundError:
|
||||||
|
print("No packages.txt in your backup directory! Did you specify the right directory? Please check for "
|
||||||
|
"correct order of arguments: first -d/--backup-dir then -r/--restore!")
|
||||||
|
exit(2)
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
f = open(".backupdone", "r")
|
||||||
|
date = f.read(10)
|
||||||
|
f.close()
|
||||||
|
except FileNotFoundError:
|
||||||
|
date = "Unknown"
|
||||||
|
print("Restoring programs and settings from ", date)
|
||||||
|
subprocess.run(["dpkg", "--set-selections"], stdin=packagelist)
|
||||||
|
subprocess.run(["apt-get", "dselect-upgrade"])
|
||||||
|
print("Restoration of packages complete")
|
||||||
|
else:
|
||||||
|
print("You're not root! You can't restore apt packages unless you are root!")
|
||||||
|
|
||||||
|
|
||||||
|
def restore_dconf_settings():
|
||||||
|
try:
|
||||||
|
config = open("dconf_out.txt", "r")
|
||||||
|
except FileNotFoundError:
|
||||||
|
print("No dconf_out.txt in your backup directory! Did you specify the right directory? Please check for "
|
||||||
|
"correct order of arguments: first -d/--backup-dir then -r/--restore!")
|
||||||
|
else:
|
||||||
|
subprocess.run(['dconf', 'load', '/'], stdin=config)
|
||||||
|
config.close()
|
||||||
|
print("Restoration of settings is complete")
|
||||||
|
|
||||||
|
|
||||||
def restore():
|
def restore():
|
||||||
global packagelist, config
|
|
||||||
try:
|
try:
|
||||||
os.chdir(backupdir)
|
os.chdir(backupdir)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
print("Backup directory not found! Does it really exist? Please check for correct order of arguments: "
|
print("Backup directory not found! Does it really exist? Please check for correct order of arguments: "
|
||||||
"-d/--backup-dir -r/--restore!")
|
"-d/--backup-dir -r/--restore!")
|
||||||
exit(2)
|
exit(2)
|
||||||
|
|
||||||
if actions.__contains__("apt-get"):
|
if actions.__contains__("apt-get"):
|
||||||
if os.getuid() == 0:
|
restore_apt_packages()
|
||||||
try:
|
|
||||||
packagelist = open("packages.txt", "r")
|
|
||||||
except FileNotFoundError:
|
|
||||||
print("No packages.txt in your backup directory! Did you specify the right directory? Please check for "
|
|
||||||
"correct order of arguments: first -d/--backup-dir then -r/--restore!")
|
|
||||||
exit(2)
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
f = open(".backupdone", "r")
|
|
||||||
date = f.read(10)
|
|
||||||
f.close()
|
|
||||||
except FileNotFoundError:
|
|
||||||
date = "Unknown"
|
|
||||||
print("Restoring programs and settings from ", date)
|
|
||||||
subprocess.run(["dpkg", "--set-selections"], stdin=packagelist)
|
|
||||||
subprocess.run(["apt-get", "dselect-upgrade"])
|
|
||||||
print("Restoration of packages complete")
|
|
||||||
else:
|
|
||||||
print("You're not root! You can't restore packages unless you are root!")
|
|
||||||
if actions.__contains__("dconf"):
|
if actions.__contains__("dconf"):
|
||||||
try:
|
restore_dconf_settings()
|
||||||
config = open("dconf_out.txt", "r")
|
|
||||||
except FileNotFoundError:
|
|
||||||
print("No dconf_out.txt in your backup directory! Did you specify the right directory? Please check for "
|
|
||||||
"correct order of arguments: first -d/--backup-dir then -r/--restore!")
|
|
||||||
else:
|
|
||||||
subprocess.run(['dconf', 'load', '/'], stdin=config)
|
|
||||||
config.close()
|
|
||||||
print("Restoration of settings is complete")
|
|
||||||
print("Exitting...")
|
print("Exitting...")
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
@@ -147,6 +154,6 @@ if __name__ == '__main__':
|
|||||||
exit(0)
|
exit(0)
|
||||||
run_daily()
|
run_daily()
|
||||||
if actions.__contains__("apt-get"):
|
if actions.__contains__("apt-get"):
|
||||||
list_pkgs()
|
list_apt_packages()
|
||||||
if actions.__contains__("dconf"):
|
if actions.__contains__("dconf"):
|
||||||
save_settings()
|
save_dconf_settings()
|
||||||
|
|||||||
Reference in New Issue
Block a user