index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
author | demostanis <demostanis@protonmail.com> | 2020-10-23 15:53:31 +0200 |
---|---|---|
committer | demostanis <demostanis@protonmail.com> | 2020-10-23 15:53:31 +0200 |
commit | 5d2b11e60fa244c1f8af78d4238848f45a4c0d2c (patch) | |
tree | 9f894f678da94e7e3b1b5ad6d01cb443a611f6eb | |
parent | d018ae98a1178ca3105e68cf7a25df32ece12398 (diff) |
-rw-r--r-- | archinstall/__main__.py | 73 |
diff --git a/archinstall/__main__.py b/archinstall/__main__.py index d2ef22cb..de7cf994 100644 --- a/archinstall/__main__.py +++ b/archinstall/__main__.py @@ -1,59 +1,68 @@ from urllib.parse import urlparse -import archinstall, sys, os, glob +import archinstall +import sys +import os +import glob import urllib.request # TODO: Learn the dark arts of argparse... # (I summon thee dark spawn of cPython) + class ProfileNotFound(BaseException): - pass + pass + def find_examples(): - """ - Used to locate the examples, bundled with the module or executable. + """ + Used to locate the examples, bundled with the module or executable. - :return: {'guided.py' : './examples/guided.py', '<profile #2>' : '<path #2>'} - :rtype: dict - """ - cwd = os.path.abspath(f'{os.path.dirname(__file__)}') - examples = f"{cwd}/examples" + :return: {'guided.py' : './examples/guided.py', '<profile #2>' : '<path #2>'} + :rtype: dict + """ + cwd = os.path.abspath(f'{os.path.dirname(__file__)}') + examples = f"{cwd}/examples" + + return {os.path.basename(path): path for path in glob.glob(f'{examples}/*.py')} - return {os.path.basename(path): path for path in glob.glob(f'{examples}/*.py')} def find(url): parsed_url = urlparse(url) if not parsed_url.scheme: examples = find_examples() if f"{url}.py" in examples: - return open(examples[f"{url}.py"]).read() + return open(examples[f"{url}.py"]).read() try: - return open(url, 'r').read() + return open(url, 'r').read() except FileNotFoundError: - return ProfileNotFound(f"File {url} does not exist") + return ProfileNotFound(f"File {url} does not exist") elif parsed_url.scheme in ('https', 'http'): return urllib.request.urlopen(url).read().decode('utf-8') else: return ProfileNotFound(f"Cannot handle scheme {parsed_url.scheme}") + def run_as_a_module(): - """ - Since we're running this as a 'python -m archinstall' module OR - a nuitka3 compiled version of the project. - This function and the file __main__ acts as a entry point. - """ - if len(sys.argv) == 1: sys.argv.append('guided') - - try: - profile = find(sys.argv[1]) - except ProfileNotFound as err: - print(f"Couldn't find file: {err}") - sys.exit(1) - - try: - exec(profile) # Is this is very safe? - except Exception as err: - print(f"Failed to run profile... {err}") - sys.exit(1) # Should prompt for another profile path instead + """ + Since we're running this as a 'python -m archinstall' module OR + a nuitka3 compiled version of the project. + This function and the file __main__ acts as a entry point. + """ + if len(sys.argv) == 1: + sys.argv.append('guided') + + try: + profile = find(sys.argv[1]) + except ProfileNotFound as err: + print(f"Couldn't find file: {err}") + sys.exit(1) + + try: + exec(profile) # Is this is very safe? + except Exception as err: + print(f"Failed to run profile... {err}") + sys.exit(1) # Should prompt for another profile path instead + if __name__ == '__main__': - run_as_a_module() + run_as_a_module() |