OLD | NEW |
1 # Copyright 2013 The LUCI Authors. All rights reserved. | 1 # Copyright 2013 The LUCI Authors. All rights reserved. |
2 # Use of this source code is governed under the Apache License, Version 2.0 | 2 # Use of this source code is governed under the Apache License, Version 2.0 |
3 # that can be found in the LICENSE file. | 3 # that can be found in the LICENSE file. |
4 | 4 |
5 from recipe_engine.config import config_item_context, ConfigGroup, Dict, Static | 5 from recipe_engine.config import config_item_context, ConfigGroup, Dict, \ |
| 6 Set, Static |
6 from recipe_engine.config_types import Path | 7 from recipe_engine.config_types import Path |
7 | 8 |
8 def BaseConfig(PLATFORM, START_DIR, TEMP_DIR, CACHE_DIR, **_kwargs): | 9 def BaseConfig(PLATFORM, START_DIR, TEMP_DIR, CACHE_DIR, **_kwargs): |
9 assert START_DIR[0].endswith(('\\', '/')), START_DIR | 10 assert START_DIR[0].endswith(('\\', '/')), START_DIR |
10 assert TEMP_DIR[0].endswith(('\\', '/')), TEMP_DIR | 11 assert TEMP_DIR[0].endswith(('\\', '/')), TEMP_DIR |
11 assert CACHE_DIR[0].endswith(('\\', '/')), CACHE_DIR | 12 assert CACHE_DIR[0].endswith(('\\', '/')), CACHE_DIR |
12 return ConfigGroup( | 13 return ConfigGroup( |
13 # base path name -> [tokenized absolute path] | 14 # base path name -> [tokenized absolute path] |
14 base_paths = Dict(value_type=tuple), | 15 base_paths = Dict(value_type=tuple), |
15 | 16 |
16 # dynamic path name -> Path object (referencing one of the base_paths) | 17 # dynamic path name -> Path object (referencing one of the base_paths) |
17 dynamic_paths = Dict(value_type=(Path, type(None))), | 18 dynamic_paths = Dict(value_type=(Path, type(None))), |
18 | 19 |
| 20 # Path keys from "base_paths" and "dynamic_paths" that are known to be |
| 21 # volatile. |
| 22 volatile_paths = Set(str), |
| 23 |
19 PLATFORM = Static(PLATFORM), | 24 PLATFORM = Static(PLATFORM), |
20 START_DIR = Static(tuple(START_DIR)), | 25 START_DIR = Static(tuple(START_DIR)), |
21 TEMP_DIR = Static(tuple(TEMP_DIR)), | 26 TEMP_DIR = Static(tuple(TEMP_DIR)), |
22 CACHE_DIR = Static(tuple(CACHE_DIR)), | 27 CACHE_DIR = Static(tuple(CACHE_DIR)), |
23 ) | 28 ) |
24 | 29 |
25 config_ctx = config_item_context(BaseConfig) | 30 config_ctx = config_item_context(BaseConfig) |
26 | 31 |
27 @config_ctx(is_root=True) | 32 @config_ctx(is_root=True) |
28 def BASE(c): | 33 def BASE(c): |
29 c.base_paths['start_dir'] = c.START_DIR | 34 c.base_paths['start_dir'] = c.START_DIR |
30 c.base_paths['tmp_base'] = c.TEMP_DIR | 35 c.base_paths['tmp_base'] = c.TEMP_DIR |
31 c.base_paths['cache'] = c.CACHE_DIR | 36 c.base_paths['cache'] = c.CACHE_DIR |
32 c.dynamic_paths['checkout'] = None | 37 c.dynamic_paths['checkout'] = None |
OLD | NEW |