Mercurial > codedump
changeset 39:a93c352af05e
Update updatechromium.py
committer: GitHub <noreply@github.com>
author | Paper <37962225+mrpapersonic@users.noreply.github.com> |
---|---|
date | Mon, 21 Jun 2021 13:58:31 -0400 |
parents | 310a73329fa4 |
children | 2aa9614cb39a |
files | updatechromium.py |
diffstat | 1 files changed, 41 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/updatechromium.py Mon Jun 21 10:26:44 2021 -0400 +++ b/updatechromium.py Mon Jun 21 13:58:31 2021 -0400 @@ -1,3 +1,5 @@ +#!/usr/bin/python +# Binaries from # https://github.com/ungoogled-software/ungoogled-chromium-archlinux/ import urllib.request import os @@ -6,20 +8,47 @@ import subprocess from tqdm import tqdm + +# Decodes subprocess stdouts, made into a function because why not +def decode_line(line): + decodeline = [] + for i in line: + decodeline.append(i.decode("utf-8").rstrip()) + return decodeline + + +# Checks current version against installed version +def check_version(version): + pacman = subprocess.Popen(["pacman", "-Qm"], stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + decodeline = decode_line(pacman.stdout.readlines()) + for i in decodeline: + if i.split(" ")[0] == "ungoogled-chromium": + if i.split(" ")[1] == version: + print("You are on the latest version!") + sys.exit(0) + + +# Checks for any Chromium processes currently running # Returns 0 if running, 1 if not running, and 2 if it doesn't exist -def check_for_file(file): - process = subprocess.Popen(["which", file], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT) +def check_for_file(files): + process = subprocess.Popen(["which", files], stdout=subprocess.DEVNULL, + stderr=subprocess.STDOUT) process.wait() if process.returncode == 0: - try: - subprocess.check_output(["pidof", file]) + pgrep = subprocess.Popen(["pidof", files], stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + decodeline = decode_line(pgrep.stdout.readlines()) + if len(decodeline) > 0: return 0 - except: + else: return 1 else: return 2 + +# Progress bar, copied from stackoverflow :pngtroll: class DownloadProgressBar(tqdm): def update_to(self, b=1, bsize=1, tsize=None): if tsize is not None: @@ -30,18 +59,19 @@ def download_url(url, output_path): with DownloadProgressBar(unit='B', unit_scale=True, miniters=1, desc=url.split('/')[-1]) as t: - urllib.request.urlretrieve(url, filename=output_path, reporthook=t.update_to) + urllib.request.urlretrieve(url, filename=output_path, + reporthook=t.update_to) + if check_for_file("chromium") == 0: print("Chromium is still running! Exiting...") sys.exit(1) -OWNER = "ungoogled-software" -REPO = "ungoogled-chromium-archlinux" -r = urllib.request.urlopen(f"https://api.github.com/repos/{OWNER}/{REPO}/releases") -json = json.loads(r.read()) +owner = "ungoogled-software" +repo = "ungoogled-chromium-archlinux" +json = json.loads(urllib.request.urlopen(f"https://api.github.com/repos/{owner}/{repo}/releases").read()) +check_version(json[0]["tag_name"]) for i in json[0]["assets"]: if i["content_type"] == "application/octet-stream": download_url(f"{i['browser_download_url']}", "/tmp/chromium.tar.zst") os.system("sudo pacman -U /tmp/chromium.tar.zst") os.remove("/tmp/chromium.tar.zst") -