Add script to show missing/hidden boards
This commit is contained in:
parent
3345f29b54
commit
97c295cb23
2 changed files with 88 additions and 24 deletions
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/python3
|
||||
import os
|
||||
import json
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
|
@ -10,9 +11,12 @@ with open('template.md', "rt") as f:
|
|||
metadata, content = frontmatter.parse(f.read())
|
||||
acceptable_features = set(metadata['features'])
|
||||
|
||||
def get_files(folder):
|
||||
return sorted(Path(folder).glob("*.md"), key=os.path.basename)
|
||||
|
||||
def verify_board_id(folder):
|
||||
valid = True
|
||||
for filename in Path(folder).glob("*.md"):
|
||||
for filename in get_files(folder):
|
||||
with open(filename, "rt") as f:
|
||||
metadata, _ = frontmatter.parse(f.read())
|
||||
downloads_display = metadata.get('downloads_display')
|
||||
|
|
@ -38,7 +42,7 @@ def valid_date(date):
|
|||
|
||||
def verify_features(folder, valid_features):
|
||||
valid = True
|
||||
for filename in Path(folder).glob("*.md"):
|
||||
for filename in get_files(folder):
|
||||
with open(filename, "rt") as f:
|
||||
metadata, _ = frontmatter.parse(f.read())
|
||||
downloads_display = metadata.get('downloads_display')
|
||||
|
|
@ -54,30 +58,29 @@ def verify_features(folder, valid_features):
|
|||
|
||||
def verify_family(folder):
|
||||
valid = True
|
||||
bl_file = open('./_data/bootloaders.json')
|
||||
bootloaders = json.load(bl_file)
|
||||
valid_bootloaders = bootloaders["bootloaders"].keys()
|
||||
for filename in Path(folder).glob("*.md"):
|
||||
with open(filename, "rt") as f:
|
||||
metadata, _ = frontmatter.parse(f.read())
|
||||
downloads_display = metadata.get('downloads_display')
|
||||
if downloads_display is None or downloads_display:
|
||||
board_id = metadata.get('board_id') or ()
|
||||
if board_id == "unknown":
|
||||
continue
|
||||
family = metadata.get('family')
|
||||
if family is None:
|
||||
print(f"Family field is missing for {board_id}")
|
||||
valid = False
|
||||
elif family not in valid_bootloaders:
|
||||
print(f"Family field value of {family} for {board_id} is invalid.")
|
||||
valid = False
|
||||
bl_file.close()
|
||||
with open('./_data/bootloaders.json') as bl_file:
|
||||
bootloaders = json.load(bl_file)
|
||||
valid_bootloaders = bootloaders["bootloaders"].keys()
|
||||
for filename in get_files(folder):
|
||||
with open(filename, "rt") as f:
|
||||
metadata, _ = frontmatter.parse(f.read())
|
||||
downloads_display = metadata.get('downloads_display')
|
||||
if downloads_display is None or downloads_display:
|
||||
board_id = metadata.get('board_id') or ()
|
||||
if board_id == "unknown":
|
||||
continue
|
||||
family = metadata.get('family')
|
||||
if family is None:
|
||||
print(f"Family field is missing for {board_id}")
|
||||
valid = False
|
||||
elif family not in valid_bootloaders:
|
||||
print(f"Family field value of {family} for {board_id} is invalid.")
|
||||
valid = False
|
||||
return valid
|
||||
|
||||
def verify_date_added(folder):
|
||||
valid = True
|
||||
for filename in Path(folder).glob("*.md"):
|
||||
for filename in get_files(folder):
|
||||
with open(filename, "rt") as f:
|
||||
metadata, _ = frontmatter.parse(f.read())
|
||||
downloads_display = metadata.get('downloads_display')
|
||||
|
|
@ -97,7 +100,7 @@ def verify_date_added(folder):
|
|||
def verify_contribute_not_present(folder):
|
||||
valid = True
|
||||
contribute = re.compile(r".*\n## Contribute", re.MULTILINE | re.DOTALL)
|
||||
for filename in Path(folder).glob("*.md"):
|
||||
for filename in get_files(folder):
|
||||
with open(filename, "rt") as f:
|
||||
metadata, content = frontmatter.parse(f.read())
|
||||
board_id = metadata.get('board_id') or ()
|
||||
|
|
@ -109,7 +112,7 @@ def verify_contribute_not_present(folder):
|
|||
def verify_blinka_board(folder):
|
||||
# Check that blinka flag is set for all boards in the folder
|
||||
valid = True
|
||||
for filename in Path(folder).glob("*.md"):
|
||||
for filename in get_files(folder):
|
||||
with open(filename, "rt") as f:
|
||||
metadata, _ = frontmatter.parse(f.read())
|
||||
downloads_display = metadata.get('downloads_display')
|
||||
|
|
|
|||
61
missing-boards.py
Executable file
61
missing-boards.py
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
# Print a list of hidden and missing boards
|
||||
|
||||
import os
|
||||
import json
|
||||
from pathlib import Path
|
||||
import frontmatter
|
||||
|
||||
def get_files(folder):
|
||||
return sorted(Path(folder).glob("*.md"), key=os.path.basename)
|
||||
|
||||
def find_hidden_boards(folder):
|
||||
hidden_boards = []
|
||||
for filename in get_files(folder):
|
||||
with open(filename, "rt") as f:
|
||||
metadata, _ = frontmatter.parse(f.read())
|
||||
downloads_display = metadata.get('downloads_display')
|
||||
if downloads_display is not None and not downloads_display:
|
||||
board_id = metadata.get('board_id')
|
||||
if board_id == "unknown":
|
||||
continue
|
||||
hidden_boards.append(board_id)
|
||||
print("Hidden boards:")
|
||||
print("----------------")
|
||||
if hidden_boards:
|
||||
print("\n".join(hidden_boards))
|
||||
else:
|
||||
print("No Hidden Boards")
|
||||
|
||||
def find_missing_boards(folder):
|
||||
missing_boards = []
|
||||
# Add all board ids to a list from data file
|
||||
with open('./_data/files.json') as board_file:
|
||||
boards = json.load(board_file)
|
||||
for board in boards:
|
||||
if not os.path.exists(f"./_boards/{board}.md"):
|
||||
missing_boards.append(board["id"])
|
||||
|
||||
# Scan through files and remove board_ids from list
|
||||
for filename in get_files(folder):
|
||||
with open(filename, "rt") as f:
|
||||
metadata, _ = frontmatter.parse(f.read())
|
||||
board_id = metadata.get('board_id')
|
||||
if board_id == "unknown":
|
||||
continue
|
||||
if board_id in missing_boards:
|
||||
missing_boards.remove(board_id)
|
||||
|
||||
# Print out remaining board_ids
|
||||
print("")
|
||||
print("Missing boards:")
|
||||
print("----------------")
|
||||
if missing_boards:
|
||||
print("\n".join(missing_boards))
|
||||
else:
|
||||
print("No Missing Boards")
|
||||
|
||||
|
||||
find_hidden_boards("_board")
|
||||
find_missing_boards("_board")
|
||||
Loading…
Reference in a new issue