From d4c812980b3d391c784a949d8c4366e68cebcaac Mon Sep 17 00:00:00 2001 From: Mo8it Date: Sat, 23 Apr 2022 23:07:08 +0200 Subject: [PATCH] Add xonsh update script --- .scripts/update.xsh | 49 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .scripts/update.xsh diff --git a/.scripts/update.xsh b/.scripts/update.xsh new file mode 100644 index 0000000..cd61a07 --- /dev/null +++ b/.scripts/update.xsh @@ -0,0 +1,49 @@ +#!/usr/bin/env xonsh + +import re + +def get_out(out_obj): + for line in out_obj: + print(line, end="") + + return out_obj.out.split("\n") + +def press_to_exit(): + read -s -n 1 -p "Exit" + +def main(): + if $ARG1 == "rpm-ostree": + out = get_out(!(rpm-ostree upgrade | tee)) + + if out[-2] != "No upgrade available.": + press_to_exit() + elif $ARG1 == "flatpak": + flatpak update -y + flatpak remove --delete-data --unused + elif $ARG1 == "pipx": + out = get_out(!(pipx upgrade-all --include-injected | tee)) + + if "did not change" not in out[-2]: + press_to_exit() + elif $ARG1 == "cargo": + out = get_out(!(cargo install-update -a | tee)) + + pattern = r"updated (\d+) packages" + match = re.search(pattern, out[-2]) + + if match is None: + press_to_exit() + return + + num_updated_packages = match.group(1) + + if num_updated_packages != "0": + press_to_exit() + elif $ARG1 == "npm": + npm update -g + elif $ARG1 == "nvim": + nvim --headless -c "autocmd User PackerComplete quitall" -c "PackerSync" + else: + print(f"{$ARG1} not found!") + +main()