shconfig: add `link` command to view the inverse dependency
[lunaix-os.git] / lunaix-os / scripts / build-tools / lcfg2 / nodes.py
index 19ead504bb9cf91402f4be5c4295fdbcc35ac1ce..3b423949d006859b17c2108d2595738603a2f028 100644 (file)
@@ -1,6 +1,6 @@
 import ast
 
 import ast
 
-from lib.utils  import SourceLogger, Schema
+from lib.utils   import SourceLogger, Schema
 from .common     import NodeProperty, ConfigNodeError, NodeDependency
 from .lazy       import LazyLookup
 from .rewriter   import ConfigNodeASTRewriter
 from .common     import NodeProperty, ConfigNodeError, NodeDependency
 from .lazy       import LazyLookup
 from .rewriter   import ConfigNodeASTRewriter
@@ -40,8 +40,13 @@ class ConfigNode:
         NodeProperty.Readonly[self] = False
         NodeProperty.Status[self]   = "Empty"
 
         NodeProperty.Readonly[self] = False
         NodeProperty.Status[self]   = "Empty"
 
-    def set_node_body(self, ast_nodes, rewriter = ConfigNodeASTRewriter):
-        new_ast = ast.Module(ast_nodes, [])
+    def set_node_body(self, ast_nodes):
+        self.__exec = ast.Module(ast_nodes, [])
+        
+    def apply_node_body(self, rewriter = ConfigNodeASTRewriter):
+        assert isinstance(self.__exec, ast.Module)
+
+        new_ast = self.__exec
         validator.validate(self, new_ast)
         
         new_ast = rewriter(self).rewrite(new_ast)
         validator.validate(self, new_ast)
         
         new_ast = rewriter(self).rewrite(new_ast)