-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlibrewolf_installer.py
More file actions
71 lines (53 loc) · 1.93 KB
/
librewolf_installer.py
File metadata and controls
71 lines (53 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from mt import ensure_venv
ensure_venv(__file__)
import os
import re
import shutil
import requests
from getpass import getuser
from typing import Optional
from papertools import Console
def get_portable_link() -> Optional[str]:
api_url: str = r"https://gitlab.com/api/v4/projects/librewolf-community%2Fbrowser%2Fbsys6/releases"
response: requests.Response = requests.get(api_url)
if response.status_code != 200:
print(f"Fehler beim Abrufen der Releases: {response.status_code}")
return None
releases: dict = response.json()
if not releases:
print("Keine Releases gefunden")
return None
latest_release: dict = releases[0]
for asset in latest_release.get("assets", {}).get("links", []):
if re.search(r'windows-x86_64-portable\.zip$', asset["name"]):
return asset["url"]
print('Kein entsprechendes LibreWolf Paket gefunden')
return None
try:
folder: str = 'C:\\Users\\Public\\'
Console.print_colour(
'Lädt LibreWolf herunter...', 'red')
link: Optional[str] = get_portable_link()
if not link:
print('Fehler beim Abfragen der richtigen LibreWolf Version')
input()
exit()
response: requests.Response = requests.get(link)
zip_path: str = 'C:\\Temp\\librewolf.zip'
if response.status_code == 200:
with open(zip_path, 'wb') as f:
f.write(response.content)
Console.print_colour('Librewolf .zip heruntergeladen', 'green')
else:
Console.print_colour(
'Librewolf konnte nicht heruntergeladen werden', 'red')
Console.print_colour('Entpackt LibreWolf', 'yellow')
os.makedirs(
folder, exist_ok=True)
shutil.unpack_archive(zip_path, folder)
Console.print_colour(
'LibreWolf installiert, löscht Archiv', 'green')
os.remove(zip_path)
finally:
Console.print_colour('Drücke Enter um das Fenster zu schließen', 'green')
input()