diff options
Diffstat (limited to 'catapult/telemetry/telemetry/util/command_line.py')
-rw-r--r-- | catapult/telemetry/telemetry/util/command_line.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/catapult/telemetry/telemetry/util/command_line.py b/catapult/telemetry/telemetry/util/command_line.py new file mode 100644 index 00000000..faf870f4 --- /dev/null +++ b/catapult/telemetry/telemetry/util/command_line.py @@ -0,0 +1,39 @@ +# Copyright 2015 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. + +import argparse + +from telemetry.internal.util import command_line + + +class ArgParseCommand(command_line.Command): + usage = '' + + @classmethod + def CreateParser(cls): + return argparse.ArgumentParser('%%prog %s %s' % (cls.Name(), cls.usage), + description=cls.Description()) + + @classmethod + def AddCommandLineArgs(cls, parser, environment): + # pylint: disable=arguments-differ + pass + + @classmethod + def ProcessCommandLineArgs(cls, parser, options, extra_args, environment): + # pylint: disable=arguments-differ + pass + + def Run(self, options, extra_args=None): + # pylint: disable=arguments-differ + raise NotImplementedError() + + @classmethod + def main(cls, args=None): + """Main method to run this command as a standalone script.""" + parser = cls.CreateParser() + cls.AddCommandLineArgs(parser, None) + options, extra_args = parser.parse_known_args(args=args) + cls.ProcessCommandLineArgs(parser, options, extra_args, None) + return min(cls().Run(options, extra_args), 255) |