1
0
Fork 0
mirror of https://codeberg.org/Mo8it/dotfiles.git synced 2024-10-17 20:52:40 +00:00
dotfiles/.scripts/update.py

63 lines
1.3 KiB
Python
Raw Normal View History

2022-05-04 20:45:52 +00:00
import subprocess
from getpass import getpass
from sys import argv
def run(command, **kwargs):
return subprocess.run(command, shell=True, **kwargs)
def cap_live_lines(command, **kwargs):
lines = []
with subprocess.Popen(
command, shell=True, stdout=subprocess.PIPE, text=True, **kwargs
) as proc:
for line in proc.stdout:
print(line, end="")
lines.append(line.strip())
return lines
def press_to_exit():
2022-06-16 20:21:33 +00:00
getpass("\n<<-<>===EXIT===<>->>")
2022-05-04 20:45:52 +00:00
def update_rpm_ostree():
lines = cap_live_lines("rpm-ostree upgrade")
2022-05-04 20:45:52 +00:00
if "no upgrade" not in lines[-1].lower():
press_to_exit()
2022-05-04 20:45:52 +00:00
def update_flatpak():
lines = cap_live_lines("flatpak update -y")
done_updates = "nothing to do" not in lines[-1].lower()
2022-05-04 20:45:52 +00:00
run("flatpak remove --delete-data --unused")
2022-05-04 20:45:52 +00:00
if done_updates:
press_to_exit()
2022-06-16 20:21:33 +00:00
def update_cargo():
lines = cap_live_lines("cargo install-update -a")
if "no packages need updating" not in lines[-2].lower():
press_to_exit()
def main(input):
2022-06-14 16:09:47 +00:00
if input == "rpm-ostree":
update_rpm_ostree()
elif input == "flatpak":
update_flatpak()
elif input == "cargo":
update_cargo()
2022-05-04 20:45:52 +00:00
else:
print(f"Input {input} not valid!")
if __name__ == "__main__":
main(argv[1])