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")
-