Mercurial > codedump
annotate updatechromium.py @ 128:1a83948b7f80
gendesc: only use fulltitle if available
| author | Paper <paper@tflc.us> |
|---|---|
| date | Sun, 19 Oct 2025 22:46:55 -0400 |
| parents | 2aa9614cb39a |
| children |
| rev | line source |
|---|---|
|
39
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
1 #!/usr/bin/python |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
2 # Binaries from |
|
36
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
3 # https://github.com/ungoogled-software/ungoogled-chromium-archlinux/ |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
4 import urllib.request |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
5 import os |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
6 import json |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
7 import sys |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
8 import subprocess |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
9 from tqdm import tqdm |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
10 |
|
39
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
11 |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
12 # Decodes subprocess stdouts, made into a function because why not |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
13 def decode_line(line): |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
14 decodeline = [] |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
15 for i in line: |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
16 decodeline.append(i.decode("utf-8").rstrip()) |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
17 return decodeline |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
18 |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
19 |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
20 # Checks current version against installed version |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
21 def check_version(version): |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
22 pacman = subprocess.Popen(["pacman", "-Qm"], stdout=subprocess.PIPE, |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
23 stderr=subprocess.STDOUT) |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
24 decodeline = decode_line(pacman.stdout.readlines()) |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
25 for i in decodeline: |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
26 if i.split(" ")[0] == "ungoogled-chromium": |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
27 if i.split(" ")[1] == version: |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
28 print("You are on the latest version!") |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
29 sys.exit(0) |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
30 |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
31 |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
32 # Checks for any Chromium processes currently running |
|
36
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
33 # Returns 0 if running, 1 if not running, and 2 if it doesn't exist |
|
39
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
34 def check_for_file(files): |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
35 process = subprocess.Popen(["which", files], stdout=subprocess.DEVNULL, |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
36 stderr=subprocess.STDOUT) |
|
36
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
37 process.wait() |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
38 |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
39 if process.returncode == 0: |
|
39
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
40 pgrep = subprocess.Popen(["pidof", files], stdout=subprocess.PIPE, |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
41 stderr=subprocess.STDOUT) |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
42 decodeline = decode_line(pgrep.stdout.readlines()) |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
43 if len(decodeline) > 0: |
|
36
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
44 return 0 |
|
39
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
45 else: |
|
36
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
46 return 1 |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
47 else: |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
48 return 2 |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
49 |
|
39
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
50 |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
51 # Progress bar, copied from stackoverflow :pngtroll: |
|
36
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
52 class DownloadProgressBar(tqdm): |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
53 def update_to(self, b=1, bsize=1, tsize=None): |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
54 if tsize is not None: |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
55 self.total = tsize |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
56 self.update(b * bsize - self.n) |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
57 |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
58 |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
59 def download_url(url, output_path): |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
60 with DownloadProgressBar(unit='B', unit_scale=True, |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
61 miniters=1, desc=url.split('/')[-1]) as t: |
|
39
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
62 urllib.request.urlretrieve(url, filename=output_path, |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
63 reporthook=t.update_to) |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
64 |
|
36
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
65 |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
66 if check_for_file("chromium") == 0: |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
67 print("Chromium is still running! Exiting...") |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
68 sys.exit(1) |
|
39
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
69 owner = "ungoogled-software" |
|
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
70 repo = "ungoogled-chromium-archlinux" |
| 40 | 71 json = json.loads(urllib.request.urlopen( |
| 72 f"https://api.github.com/repos/{owner}/{repo}/releases").read()) | |
|
39
a93c352af05e
Update updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
38
diff
changeset
|
73 check_version(json[0]["tag_name"]) |
|
36
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
74 for i in json[0]["assets"]: |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
75 if i["content_type"] == "application/octet-stream": |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
76 download_url(f"{i['browser_download_url']}", "/tmp/chromium.tar.zst") |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
77 os.system("sudo pacman -U /tmp/chromium.tar.zst") |
|
8e49e6662429
Add updatechromium.py
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff
changeset
|
78 os.remove("/tmp/chromium.tar.zst") |
