index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
author | Anton Hvornum <anton@hvornum.se> | 2021-05-21 09:29:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-21 09:29:04 +0200 |
commit | 60cdb2ab8725a9001768473d90bfd189ada577f9 (patch) | |
tree | c2054f41030325e5cf1f2e609e030ae91fe19d55 /examples | |
parent | 9bb940a8f58bb5522ca4bbcfd378550079c520ac (diff) | |
parent | 7fefd55a0c716ef93f621d54d20f8d834cbc87ef (diff) |
-rw-r--r-- | examples/custom-command-sample.json | 36 | ||||
-rw-r--r-- | examples/guided.py | 19 |
diff --git a/examples/custom-command-sample.json b/examples/custom-command-sample.json new file mode 100644 index 00000000..0518d3db --- /dev/null +++ b/examples/custom-command-sample.json @@ -0,0 +1,36 @@ +{ + "audio": "pipewire", + "bootloader": "systemd-bootctl", + "custom-commands": [ + "cd /home/devel; git clone https://aur.archlinux.org/paru.git", + "chown -R devel:devel /home/devel/paru", + "usermod -aG docker devel" + ], + "!encryption-password": "supersecret", + "filesystem": "btrfs", + "harddrive": { + "path": "/dev/nvme0n1" + }, + "hostname": "development-box", + "kernels": [ + "linux" + ], + "keyboard-language": "us", + "mirror-region": { + "Worldwide": { + "https://mirror.rackspace.com/archlinux/$repo/os/$arch": true + } + }, + "nic": { + "NetworkManager": true + }, + "packages": ["docker", "git", "wget", "zsh"], + "profile": "gnome", + "superusers": { + "devel": { + "!password": "devel" + } + }, + "timezone": "US/Eastern", + "users": {} +} diff --git a/examples/guided.py b/examples/guided.py index f0d0db7a..d23c483e 100644 --- a/examples/guided.py +++ b/examples/guided.py @@ -4,6 +4,7 @@ import os import time import archinstall +from archinstall.lib.general import run_custom_user_commands from archinstall.lib.hardware import has_uefi from archinstall.lib.networking import check_mirror_reachable from archinstall.lib.profiles import Profile @@ -180,16 +181,13 @@ def ask_user_questions(): if not archinstall.arguments.get('profile', None): archinstall.arguments['profile'] = archinstall.select_profile(archinstall.list_profiles(filter_top_level_profiles=True)) else: - archinstall.arguments['profile'] = archinstall.list_profiles()[archinstall.arguments['profile']] + archinstall.arguments['profile'] = Profile(installer=None, path=archinstall.arguments['profile']) # Check the potentially selected profiles preparations to get early checks if some additional questions are needed. if archinstall.arguments['profile'] and archinstall.arguments['profile'].has_prep_function(): with archinstall.arguments['profile'].load_instructions(namespace=f"{archinstall.arguments['profile'].namespace}.py") as imported: if not imported._prep_function(): - archinstall.log( - ' * Profile\'s preparation requirements was not fulfilled.', - fg='red' - ) + archinstall.log(' * Profile\'s preparation requirements was not fulfilled.', fg='red') exit(1) # Ask about audio server selection if one is not already set @@ -381,6 +379,10 @@ def perform_installation(mountpoint): archinstall.log(' * Profile\'s post configuration requirements was not fulfilled.', fg='red') exit(1) + # If the user provided custom commands to be run post-installation, execute them now. + if archinstall.arguments.get('custom-commands', None): + run_custom_user_commands(archinstall.arguments['custom-commands'], installation) + installation.log("For post-installation tips, see https://wiki.archlinux.org/index.php/Installation_guide#Post-installation", fg="yellow") if not archinstall.arguments.get('silent'): choice = input("Would you like to chroot into the newly created installation and perform post-installation configuration? [Y/n] ") @@ -410,8 +412,9 @@ else: # Temporarily disabling keep_partitions if config file is loaded archinstall.arguments['harddrive'].keep_partitions = False # Temporary workaround to make Desktop Environments work - archinstall.storage['_desktop_profile'] = archinstall.arguments.get('desktop', None) - if archinstall.arguments.get('profile', None): - archinstall.arguments['profile'] = Profile(installer=None, path=archinstall.arguments['profile']['path']) + if archinstall.arguments.get('profile', None) is not None: + archinstall.arguments['profile'] = archinstall.Profile(None, archinstall.arguments.get('profile', None)) + else: + archinstall.arguments['profile'] = None perform_installation_steps() |