Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion ansigenome/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,10 @@
- jessie
categories: [%categories]

"""

DEFAULT_AG_FILE = """---

ansigenome_info:
galaxy_id: ''

Expand All @@ -137,8 +141,8 @@

#custom: |
# Any custom output you want after the usage section...
"""

"""

LOG_COLOR = {
"ok": "green",
Expand Down
26 changes: 18 additions & 8 deletions ansigenome/scan.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,11 @@ def scan_roles(self):
self.paths["role"] = os.path.join(self.roles_path, key)
self.paths["meta"] = os.path.join(self.paths["role"], "meta",
"main.yml")
self.paths["ansigenome"] = os.path.join(
self.paths["role"],
"meta",
"ansigenome.yml"
)
self.paths["readme"] = os.path.join(self.paths["role"],
"README.{0}"
.format(self.readme_format))
Expand All @@ -119,14 +124,14 @@ def scan_roles(self):
# we are writing a readme file which means the state of the role
# needs to be updated before it gets output by the ui
if self.gendoc:
if self.valid_meta(key):
if self.read_and_valid_meta(key):
self.make_meta_dict_consistent()
self.set_readme_template_vars(key, value)
self.write_readme(key)
# only load the meta file when generating meta files
elif self.genmeta:
self.make_or_augment_meta(key)
if self.valid_meta(key):
if self.read_and_valid_meta(key):
self.make_meta_dict_consistent()
self.write_meta(key)
else:
Expand Down Expand Up @@ -336,12 +341,15 @@ def tally_role_columns(self):
totals["files"] = sum(roles[item]["total_files"] for item in roles)
totals["lines"] = sum(roles[item]["total_lines"] for item in roles)

def valid_meta(self, role):
def read_and_valid_meta(self, role):
"""
Return whether or not the meta file being read is valid.
Read the meta files and return whether or not the meta file being read
is valid.
"""
if os.path.exists(self.paths["meta"]):
self.meta_dict = utils.yaml_load(self.paths["meta"])
if os.path.exists(self.paths["ansigenome"]):
self.meta_dict['ansigenome_info'] = utils.yaml_load(self.paths["ansigenome"])['ansigenome_info']
else:
self.report["state"]["missing_meta_role"] += 1
self.report["roles"][role]["state"] = "missing_meta"
Expand All @@ -366,6 +374,11 @@ def make_or_augment_meta(self, role):
self.report["state"]["ok_role"] += 1
self.report["roles"][role]["state"] = "ok"

if not os.path.exists(self.paths["ansigenome"]):
ag_meta_file = c.DEFAULT_AG_FILE
ag_meta_file = meta_file.replace("%role_name", role)
utils.string_to_file(self.paths['ansigenome'], c.DEFAULT_AG_FILE)

# swap values in place to use the config values
swaps = [
("author", self.config["author_name"]),
Expand Down Expand Up @@ -420,10 +433,7 @@ def augment_main_keys(self, keys, file):

for key in keys:
if key[0] not in nfile:
if key[0] == "ansigenome_info":
# make sure ansigenome_info is always on the bottom
nfile = nfile + "\n{0}".format(ansigenome_block)
else:
if key[0] != "ansigenome_info":
nfile = "\n{0}: {1}\n\n".format(key[0], key[1]) + nfile

return nfile
Expand Down