|
6 | 6 | import storage
|
7 | 7 | import microcontroller
|
8 | 8 |
|
9 |
| -# Get all files in the format of .env.xxxxxxxxxx |
10 |
| -def enumerate_env_files(): |
| 9 | +SETTINGS_FOLDER = "/" |
| 10 | + |
| 11 | +# Get all files in the format of xxxxxxxxxx.toml except settings.toml |
| 12 | +def enumerate_toml_files(): |
11 | 13 | found_files = []
|
12 |
| - all_files = os.listdir("/") |
| 14 | + all_files = os.listdir(SETTINGS_FOLDER) |
13 | 15 | for current_file in all_files:
|
14 |
| - if current_file[:4] == ".env" and len(current_file) > 4: |
15 |
| - found_files.append(current_file) |
| 16 | + if current_file[:2] != "._" and current_file[-5:] == ".toml" and current_file != "settings.toml": |
| 17 | + found_files.append(SETTINGS_FOLDER + current_file) |
16 | 18 | return found_files
|
17 | 19 |
|
18 | 20 |
|
19 |
| -# Compare .env to enumerated env files |
20 |
| -def get_current_env_file(enumerated_files): |
21 |
| - with open(".env") as env: |
22 |
| - env_lines = env.readlines() |
23 |
| - for env_file in enumerated_files: |
24 |
| - with open(env_file) as f: |
| 21 | +# Compare settings.toml to enumerated toml files |
| 22 | +def get_current_toml_file(enumerated_files): |
| 23 | + with open("settings.toml") as settings: |
| 24 | + settings_lines = settings.readlines() |
| 25 | + for toml_file in enumerated_files: |
| 26 | + with open(toml_file) as f: |
25 | 27 | lines = f.readlines()
|
26 |
| - if len(env_lines) != len(lines): |
| 28 | + if len(settings_lines) != len(lines): |
27 | 29 | continue
|
28 | 30 | file_may_match = True
|
29 |
| - for line_no, env_line in enumerate(env_lines): |
30 |
| - if env_line != lines[line_no]: |
| 31 | + for line_no, settings_line in enumerate(settings_lines): |
| 32 | + if settings_line != lines[line_no]: |
31 | 33 | file_may_match = False
|
32 | 34 | break
|
33 | 35 | if not file_may_match:
|
34 | 36 | continue
|
35 |
| - return env_file |
| 37 | + return toml_file |
36 | 38 | return None
|
37 | 39 |
|
38 | 40 |
|
39 |
| -# Erase .env then write the contents of the new env file |
40 |
| -def change_env_file(env_file): |
| 41 | +# Erase settings.toml then write the contents of the new settings.toml file |
| 42 | +def change_toml_file(toml_file): |
41 | 43 | try:
|
42 | 44 | storage.remount("/", False)
|
43 |
| - open(".env", "w").close() |
44 |
| - with open(".env", "w") as env, open(env_file) as f: |
| 45 | + open("settings.toml", "w").close() |
| 46 | + with open("settings.toml", "w") as settings, open(toml_file) as f: |
45 | 47 | for line in f.readlines():
|
46 |
| - env.write(line) |
47 |
| - env.close() |
| 48 | + settings.write(line) |
| 49 | + settings.close() |
48 | 50 | print("Done. Hard resetting board...")
|
49 | 51 | microcontroller.reset()
|
50 | 52 | except RuntimeError:
|
51 | 53 | print("You can't change the env file with this script while USB is mounted")
|
52 | 54 |
|
53 | 55 |
|
54 | 56 | # Return a prettier name than the env file
|
55 |
| -def pretty_name(env_file): |
56 |
| - name = env_file[5:] |
| 57 | +def pretty_name(toml_file): |
| 58 | + name = toml_file.rsplit("/", 1)[1] |
| 59 | + name = name[:-5] |
57 | 60 | name = name[0].upper() + name[1:]
|
58 |
| - return f"{name} .env file" |
| 61 | + return f"{name} toml file" |
59 | 62 |
|
60 |
| -env_files = enumerate_env_files() |
| 63 | +toml_files = enumerate_toml_files() |
61 | 64 |
|
62 |
| -if len(env_files) < 2: |
63 |
| - print("You need to have at least 2 env files to change") |
| 65 | +if len(toml_files) < 2: |
| 66 | + print("You need to have at least 2 .toml files to change") |
64 | 67 |
|
65 |
| -result = get_current_env_file(env_files) |
| 68 | +result = get_current_toml_file(toml_files) |
66 | 69 | if result:
|
67 |
| - env_files.remove(result) |
68 |
| -print("WARNING: This will overwrite all of your current .env file settings.") |
69 |
| -if len(env_files) == 1: |
70 |
| - answer = input(f"Change to {pretty_name(env_files[0])}? ") |
| 70 | + toml_files.remove(result) |
| 71 | +print("WARNING: This will overwrite all of your current settings.toml file settings.") |
| 72 | +if len(toml_files) == 1: |
| 73 | + answer = input(f"Change to {pretty_name(toml_files[0])}? ") |
71 | 74 | answer = answer.lower()
|
72 | 75 | if answer in ("y", "yes"):
|
73 |
| - change_env_file(env_files[0]) |
| 76 | + change_toml_file(toml_files[0]) |
74 | 77 | else:
|
75 | 78 | valid_selection = False
|
76 | 79 | while not valid_selection:
|
77 | 80 | print("Select an option:")
|
78 |
| - for index, file in enumerate(env_files): |
| 81 | + for index, file in enumerate(toml_files): |
79 | 82 | print(f"{index + 1}: {pretty_name(file)}")
|
80 | 83 | answer = input("Which option would you like? ")
|
81 |
| - if answer.isdigit() and 0 < int(answer) <= len(env_files): |
| 84 | + if answer.isdigit() and 0 < int(answer) <= len(toml_files): |
82 | 85 | valid_selection = True
|
83 |
| - change_env_file(env_files[int(answer) - 1]) |
| 86 | + change_toml_file(toml_files[int(answer) - 1]) |
84 | 87 | print(f"{answer} was an invalid selection.\n")
|
0 commit comments