Index: scripts/slave/recipe_modules/python/api.py |
diff --git a/scripts/slave/recipe_modules/python/api.py b/scripts/slave/recipe_modules/python/api.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6a92dc88c046fe47b1d7642aac1cac8fde261752 |
--- /dev/null |
+++ b/scripts/slave/recipe_modules/python/api.py |
@@ -0,0 +1,21 @@ |
+# Copyright 2013 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+from slave import recipe_api |
+ |
+class PythonApi(recipe_api.RecipeApi): |
+ def __call__(self, name, script, args=None, unbuffered=True, **kwargs): |
+ """Return a step to run a python script with arguments.""" |
+ cmd = ['python'] |
+ if unbuffered: |
+ cmd.append('-u') |
+ cmd.append(script) |
+ return self.m.step(name, cmd + list(args or []), **kwargs) |
+ |
+ def inline(self, name, program, **kwargs): |
+ """Run an inline python program as a step. |
+ |
+ Program is output to a temp file and run when this step executes. |
+ """ |
+ return self(name, recipe_api.InputDataPlaceholder(program, '.py'), **kwargs) |