summaryrefslogtreecommitdiff
path: root/util/write_config.py
blob: 17653f182377c18ed703e9b3e911db4659464db2 (plain)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/env python


#  archinstall - A minimal Installation Script for Arch Linux
#  Copyright (C) 2019  xengineering

#  This program is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.

#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.

#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <https://www.gnu.org/licenses/>.


import sys
import json
import subprocess


config_file_path = sys.argv[1]  # e.g. "/etc/archinstall/config.json"


config = {}


# Disk selection

print("Please type in the 'NAME' of the hard disk on which you want to install Arch Linux:")
subprocess.run("lsblk -o NAME,SIZE,TYPE | grep -v part", shell=True)
config["disk"] = input()


# Select hostname

print("Please type in the hostname of your new machine:")
config["hostname"] = input()


# Desktop or no desktop

print("Do you want to install a desktop? [Y/n]:")
answer = input()
if answer in ["", "Y", "y", "Yes", "yes"]:
    config["desktop"] = "yes"
else:
    config["desktop"] = "no"


# Admin account

print("Please select your username (like 'paul' or 'alice'):")
config["admin_username"] = input()


# System encryption

print("System encryption protects all your data if your device is stolen.")
print("A second password will be required at startup to decrypt the system.")
print("Do you want to encrypt your system? [Y/n]")
answer = input()
if answer in ["", "Y", "y", "Yes", "yes"]:
    config["system_encryption"] = "yes"
else:
    config["system_encryption"] = "no"


# Write config to json file

config_json = json.dumps(config, indent=4)
with open(config_file_path, 'w') as f:
    f.write(config_json)


# Output json config for logging purpose

print("Config for this installation:")
print(config_json)

print("Wrote config - OK")