| #!/usr/bin/env python3 | |
| # -*- coding: utf-8 -*- | |
| # Copyright 2020 The ChromiumOS Authors | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| """This is a mock ectool command for fingerprint testing.""" | |
| from __future__ import print_function | |
| import argparse | |
| import sys | |
| def cmd_fpframe(): | |
| """Provides the last fingerprint capture frame to stdout.""" | |
| print('Act like I am a raw fingerprint image file.') | |
| sys.exit(0) | |
| def cmd_fpmode(): | |
| """Shows the current fingerprint subsystem's state/mode.""" | |
| print('FP mode: (0x0)') | |
| sys.exit(0) | |
| def get_parser() -> argparse.ArgumentParser: | |
| """Return the complete argument parser for ectool.""" | |
| parser = argparse.ArgumentParser(description=__doc__) | |
| parser.add_argument('--name') | |
| parser_subparsers = parser.add_subparsers(dest='action') | |
| # fpmode | |
| parser_fpmode = parser_subparsers.add_parser('fpmode') | |
| parser_fpmode.description = cmd_fpmode.__doc__ | |
| parser_fpmode.set_defaults(func=cmd_fpmode) | |
| # fpmode capture vendor | |
| parser_fpmode_subparsers = parser_fpmode.add_subparsers(dest='fpmode') | |
| parser_fpmode_subparsers.add_parser('capture').add_argument( | |
| 'capture_type', | |
| choices=['vendor'], | |
| ) | |
| # fpmode fingerup | |
| parser_fpmode_subparsers.add_parser('fingerup') | |
| # fpframe raw | |
| parser_fpframe = parser_subparsers.add_parser('fpframe') | |
| parser_fpframe.description = cmd_fpframe.__doc__ | |
| parser_fpframe.set_defaults(func=cmd_fpframe) | |
| parser_fpframe.add_argument('option', choices=['raw']) | |
| return parser | |
| def main(argv: list): | |
| """Run argument parser and launch subcommand.""" | |
| parser = get_parser() | |
| opts = parser.parse_args(argv) | |
| if opts.name != 'cros_fp': | |
| parser.error('--name=cros_fp must be specified') | |
| opts.func() | |
| if __name__ == '__main__': | |
| sys.exit(main(sys.argv[1:])) |