| # Copyright 2016 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 recipe_engine import recipe_api |
| |
| import string |
| |
| class GitClApi(recipe_api.RecipeApi): |
| def __call__(self, subcmd, args, name=None, **kwargs): |
| if not name: |
| name = 'git_cl ' + subcmd |
| |
| if kwargs.get('suffix'): |
| name = name + ' (%s)' % kwargs.pop('suffix') |
| |
| my_loc = self.c.repo_location if self.c else None |
| with self.m.context(cwd=self.m.context.cwd or my_loc): |
| return self.m.step( |
| name, [self.repo_resource('git_cl.py'), subcmd] + args, |
| **kwargs) |
| |
| def get_description(self, patch_url=None, codereview=None, **kwargs): |
| """DEPRECATED. Consider using gerrit.get_change_description instead.""" |
| args = ['-d'] |
| if patch_url or codereview: |
| assert patch_url and codereview, ( |
| 'Both patch_url and codereview must be provided') |
| args.append('--%s' % codereview) |
| args.append(patch_url) |
| |
| return self('description', args, stdout=self.m.raw_io.output(), **kwargs) |
| |
| def set_description(self, description, patch_url=None, codereview=None, **kwargs): |
| args = ['-n', '-'] |
| if patch_url or codereview: |
| assert patch_url and codereview, ( |
| 'Both patch_url and codereview must be provided') |
| args.append(patch_url) |
| args.append('--%s' % codereview) |
| |
| return self( |
| 'description', args, stdout=self.m.raw_io.output(), |
| stdin=self.m.raw_io.input_text(description), |
| name='git_cl set description', **kwargs) |
| |
| def upload(self, message, upload_args=None, **kwargs): |
| upload_args = upload_args or [] |
| |
| upload_args.extend(['--message-file', self.m.raw_io.input_text(message)]) |
| |
| return self('upload', upload_args, **kwargs) |
| |
| def issue(self, **kwargs): |
| return self('issue', [], stdout=self.m.raw_io.output(), **kwargs) |
| |