X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/d15268ba6eadf89a38087995ff407f50418485fb..9d4cc53314b8e2a236401733ac6c7093c97d4351:/lunaix-os/scripts/build-tools/lcfg2/builder.py diff --git a/lunaix-os/scripts/build-tools/lcfg2/builder.py b/lunaix-os/scripts/build-tools/lcfg2/builder.py index 83a49c2..832807a 100644 --- a/lunaix-os/scripts/build-tools/lcfg2/builder.py +++ b/lunaix-os/scripts/build-tools/lcfg2/builder.py @@ -1,4 +1,6 @@ import ast +import textwrap +import os from lib.utils import ConfigAST, ConfigASTVisitor from .common import NodeProperty, ConfigNodeError, ValueTypeConstrain @@ -69,7 +71,7 @@ class NodeBuilder(ConfigASTVisitor): astns.append(sub) NodeProperty.Token[cfgn] = node - NodeProperty.HelpText[cfgn] = help_text + NodeProperty.HelpText[cfgn] = textwrap.dedent(help_text) if cfgn_type is TermNode: NodeProperty.Type[cfgn] = ValueTypeConstrain(cfgn, node.returns) @@ -98,6 +100,10 @@ class NodeBuilder(ConfigASTVisitor): @staticmethod def build(env, rootfile): + if not os.path.exists(rootfile): + print(f"warning: config file '{rootfile}' not detected, skipped") + return + build = NodeBuilder(env) ast = ConfigAST(rootfile) @@ -105,5 +111,8 @@ class NodeBuilder(ConfigASTVisitor): ast.visit(TreeSanitiser()) ast.visit(build) + for node in env.nodes(): + node.apply_node_body() + env.set_exec_context(build.__noncfg_astns) env.relocate_children() \ No newline at end of file