Skip to content

Commit f751352

Browse files
authored
Merge pull request #2367 from makermelissa/main
Updated Web Workflow utility script env.py to use settings.toml instead of .env files
2 parents 0fe5a70 + f975cd0 commit f751352

File tree

1 file changed

+45
-37
lines changed

1 file changed

+45
-37
lines changed

Web_Workflow_Quickstart/env.py

Lines changed: 45 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,79 +6,87 @@
66
import storage
77
import microcontroller
88

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():
1113
found_files = []
12-
all_files = os.listdir("/")
14+
all_files = os.listdir(SETTINGS_FOLDER)
1315
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 (
17+
not current_file.startswith("._")
18+
and current_file.endswith(".toml")
19+
and current_file != "settings.toml"
20+
):
21+
found_files.append(SETTINGS_FOLDER + current_file)
1622
return found_files
1723

1824

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:
25+
# Compare settings.toml to enumerated toml files
26+
def get_current_toml_file(enumerated_files):
27+
with open("settings.toml") as settings:
28+
settings_lines = settings.readlines()
29+
for toml_file in enumerated_files:
30+
with open(toml_file) as f:
2531
lines = f.readlines()
26-
if len(env_lines) != len(lines):
32+
if len(settings_lines) != len(lines):
2733
continue
2834
file_may_match = True
29-
for line_no, env_line in enumerate(env_lines):
30-
if env_line != lines[line_no]:
35+
for line_no, settings_line in enumerate(settings_lines):
36+
if settings_line != lines[line_no]:
3137
file_may_match = False
3238
break
3339
if not file_may_match:
3440
continue
35-
return env_file
41+
return toml_file
3642
return None
3743

3844

39-
# Erase .env then write the contents of the new env file
40-
def change_env_file(env_file):
45+
# Erase settings.toml then write the contents of the new settings.toml file
46+
def change_toml_file(toml_file):
4147
try:
4248
storage.remount("/", False)
43-
open(".env", "w").close()
44-
with open(".env", "w") as env, open(env_file) as f:
49+
with open("settings.toml", "w") as settings:
50+
settings.write("")
51+
with open("settings.toml", "w") as settings, open(toml_file) as f:
4552
for line in f.readlines():
46-
env.write(line)
47-
env.close()
53+
settings.write(line)
4854
print("Done. Hard resetting board...")
4955
microcontroller.reset()
5056
except RuntimeError:
5157
print("You can't change the env file with this script while USB is mounted")
5258

5359

54-
# Return a prettier name than the env file
55-
def pretty_name(env_file):
56-
name = env_file[5:]
60+
# Return a prettier name than the toml filename
61+
def pretty_name(toml_file):
62+
name = toml_file.rsplit("/", 1)[1]
63+
name = name[:-5]
5764
name = name[0].upper() + name[1:]
58-
return f"{name} .env file"
65+
return f"{name} toml file"
66+
5967

60-
env_files = enumerate_env_files()
68+
toml_files = enumerate_toml_files()
6169

62-
if len(env_files) < 2:
63-
print("You need to have at least 2 env files to change")
70+
if len(toml_files) < 2:
71+
print("You need to have at least 2 .toml files to change")
6472

65-
result = get_current_env_file(env_files)
73+
result = get_current_toml_file(toml_files)
6674
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])}? ")
75+
toml_files.remove(result)
76+
print("WARNING: This will overwrite all of your current settings.toml file settings.")
77+
if len(toml_files) == 1:
78+
answer = input(f"Change to {pretty_name(toml_files[0])}? ")
7179
answer = answer.lower()
7280
if answer in ("y", "yes"):
73-
change_env_file(env_files[0])
81+
change_toml_file(toml_files[0])
7482
else:
7583
valid_selection = False
7684
while not valid_selection:
7785
print("Select an option:")
78-
for index, file in enumerate(env_files):
86+
for index, file in enumerate(toml_files):
7987
print(f"{index + 1}: {pretty_name(file)}")
8088
answer = input("Which option would you like? ")
81-
if answer.isdigit() and 0 < int(answer) <= len(env_files):
89+
if answer.isdigit() and 0 < int(answer) <= len(toml_files):
8290
valid_selection = True
83-
change_env_file(env_files[int(answer) - 1])
91+
change_toml_file(toml_files[int(answer) - 1])
8492
print(f"{answer} was an invalid selection.\n")

0 commit comments

Comments
 (0)