| 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 import collections | 5 import collections |
| 6 | 6 |
| 7 from recipe_engine.config import List | 7 from recipe_engine.config import List |
| 8 from recipe_engine.config import (config_item_context, ConfigGroup, ConfigList, | 8 from recipe_engine.config import (config_item_context, ConfigGroup, ConfigList, |
| 9 Dict, Single, Set, List) | 9 Dict, Single, Set, List) |
| 10 from recipe_engine.config_types import Path | 10 from recipe_engine.config_types import Path |
| 11 from recipe_engine.util import Placeholder | 11 from recipe_engine.util import Placeholder |
| 12 | 12 |
| 13 | 13 |
| 14 def BaseConfig(**_kwargs): | 14 def BaseConfig(**_kwargs): |
| 15 def render_cmd(lst): | 15 def render_cmd(lst): |
| 16 return [(x if isinstance(x, Placeholder) else str(x)) for x in lst] | 16 return [(x if isinstance(x, Placeholder) else str(x)) for x in lst] |
| 17 | 17 |
| 18 return ConfigGroup( | 18 return ConfigGroup( |
| 19 # For compatibility with buildbot, the step name must be ascii, which is why | 19 # For compatibility with buildbot, the step name must be ascii, which is why |
| 20 # this is a 'str' and not a 'basestring'. | 20 # this is a 'str' and not a 'basestring'. |
| 21 name = Single(str), | 21 name = Single(str), |
| 22 base_name = Single(str, required=False), |
| 22 cmd = List(inner_type=(int,long,basestring,Path,Placeholder), | 23 cmd = List(inner_type=(int,long,basestring,Path,Placeholder), |
| 23 jsonish_fn=render_cmd), | 24 jsonish_fn=render_cmd), |
| 24 timeout = Single(int, required=False), | 25 timeout = Single(int, required=False), |
| 25 | 26 |
| 26 # optional | 27 # optional |
| 27 env = Dict(item_fn=lambda (k, v): (k, v if v is None else str(v)), | 28 env = Dict(item_fn=lambda (k, v): (k, v if v is None else str(v)), |
| 28 value_type=(basestring,int,Path,type(None))), | 29 value_type=(basestring,int,Path,type(None))), |
| 29 cwd = Single(Path, jsonish_fn=str, required=True), | 30 cwd = Single(Path, jsonish_fn=str, required=True), |
| 30 | 31 |
| 31 stdout = Single(Placeholder, required=False), | 32 stdout = Single(Placeholder, required=False), |
| (...skipping 19 matching lines...) Expand all Loading... |
| 51 step_nest_level = Single(int, required=False), | 52 step_nest_level = Single(int, required=False), |
| 52 ) | 53 ) |
| 53 | 54 |
| 54 | 55 |
| 55 config_ctx = config_item_context(BaseConfig) | 56 config_ctx = config_item_context(BaseConfig) |
| 56 | 57 |
| 57 @config_ctx() | 58 @config_ctx() |
| 58 def test(c): # pragma: no cover | 59 def test(c): # pragma: no cover |
| 59 c.name = 'test' | 60 c.name = 'test' |
| 60 c.cmd = [Path('[CHECKOUT]', 'build', 'tools', 'cool_script.py')] | 61 c.cmd = [Path('[CHECKOUT]', 'build', 'tools', 'cool_script.py')] |
| OLD | NEW |