Skip to content

Commit

Permalink
fix nix.py
Browse files Browse the repository at this point in the history
  • Loading branch information
ncfavier committed Dec 17, 2020
1 parent 274e657 commit d80ef16
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions import-scripts/import_scripts/nix.py
Expand Up @@ -4,6 +4,9 @@ def prettyPrintAttrName(attr_name):
return attr_name


stringEscapes = str.maketrans({"\\": "\\\\", '"': '\\"'})


def prettyPrint(item, level=""):
next_level = level + " "
if item is None:
Expand All @@ -19,15 +22,21 @@ def prettyPrint(item, level=""):

elif type(item) == str:
if "\n" in item:
return f"''{item}''"
return f'"{item}"'
return (
"''\n"
+ "".join(
[f"{next_level}{line}" for line in item.splitlines(keepends=True)]
)
+ f"{level}''"
)
return f'"{item.translate(stringEscapes)}"'

elif type(item) == list:
if len(item) == 0:
return "[ ]"
return (
"[\n"
+ ("".join([f"{level} {prettyPrint(i, next_level)}\n" for i in item]))
+ ("".join([f"{next_level}{prettyPrint(i, next_level)}\n" for i in item]))
+ f"{level}]"
)

Expand All @@ -38,13 +47,13 @@ def prettyPrint(item, level=""):
if type(item["text"]) == str:
return item["text"]
else:
return prettyPrint(item["text"], next_level)
return prettyPrint(item["text"], level)
return (
"{\n"
+ (
"".join(
[
f"{level} {prettyPrintAttrName(n)} = {prettyPrint(v, next_level)};\n"
f"{next_level}{prettyPrintAttrName(n)} = {prettyPrint(v, next_level)};\n"
for n, v in item.items()
]
)
Expand Down

0 comments on commit d80ef16

Please sign in to comment.