Rewrite the lunabuild toolchain with enhanced feature (#60)
[lunaix-os.git] / lunaix-os / scripts / build-tools / shared / scopes.py
1 import os
2
3 from lbuild.scope import ScopeProvider
4 from lcfg2.common import NodeProperty
5
6 class ConfigScope(ScopeProvider):
7     def __init__(self, env):
8         super().__init__("config")
9         self.__env = env
10
11     def __getitem__(self, name):
12         node = self.__env.get_node(name)
13         if node is None:
14             raise Exception(f"config '{name}' not exists")
15         
16         if not NodeProperty.Enabled[node]:
17             return None
18
19         return NodeProperty.Value[node]
20
21 class EnvScope(ScopeProvider):
22     def __init__(self):
23         super().__init__("env")
24
25     def __getitem__(self, name):
26         return os.environ.get(name)