index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | archinstall/lib/profiles.py | 24 |
diff --git a/archinstall/lib/profiles.py b/archinstall/lib/profiles.py index 42fd4c24..ebcd3aff 100644 --- a/archinstall/lib/profiles.py +++ b/archinstall/lib/profiles.py @@ -1,13 +1,17 @@ +import hashlib +import importlib.util +import json +import re +import ssl +import sys +import urllib.parse +import urllib.request from typing import Optional -import os, urllib.request, urllib.parse, ssl, json, re -import importlib.util, sys, glob, hashlib, logging -from collections import OrderedDict -from .general import multisplit, sys_command -from .exceptions import * +from .general import multisplit from .networking import * -from .output import log from .storage import storage + def grab_url_data(path): safe_path = path[:path.find(':')+1]+''.join([item if item in ('/', '?', '=', '&') else urllib.parse.quote(item) for item in multisplit(path[path.find(':')+1:], ('/', '?', '=', '&'))]) ssl_context = ssl.create_default_context() @@ -16,6 +20,7 @@ def grab_url_data(path): response = urllib.request.urlopen(safe_path, context=ssl_context) return response.read() + def list_profiles(filter_irrelevant_macs=True, subpath='', filter_top_level_profiles=False): # TODO: Grab from github page as well, not just local static files if filter_irrelevant_macs: @@ -55,7 +60,7 @@ def list_profiles(filter_irrelevant_macs=True, subpath='', filter_top_level_prof except json.decoder.JSONDecodeError as err: print(f'Error: Could not decode "{profiles_url}" result as JSON:', err) return cache - + for profile in profile_list: if os.path.splitext(profile)[1] == '.py': tailored = False @@ -73,7 +78,8 @@ def list_profiles(filter_irrelevant_macs=True, subpath='', filter_top_level_prof return cache -class Script(): + +class Script: def __init__(self, profile, installer=None): # profile: https://hvornum.se/something.py # profile: desktop @@ -154,6 +160,7 @@ class Script(): return sys.modules[self.namespace] + class Profile(Script): def __init__(self, installer, path, args={}): super(Profile, self).__init__(path, installer) @@ -238,6 +245,7 @@ class Profile(Script): return imported.__packages__ return None + class Application(Profile): def __repr__(self, *args, **kwargs): return f'Application({os.path.basename(self.profile)})' |