def main()

in tools/tensorflow_docs/tools/nblint/__main__.py [0:0]


def main(argv):
  if len(argv) <= 1:
    raise app.UsageError("Missing arguments.", 1)
  if not FLAGS.styles:
    raise app.UsageError("Missing styles.", 1)

  user_args = _parse_user_args(FLAGS.arg)

  nb_linter = linter.Linter(verbose=FLAGS.verbose)
  lint_dict = add_styles(FLAGS.styles, FLAGS.exclude_lint, FLAGS.verbose)

  linter_fails = []  # Track failed notebooks for final return code.

  paths, _ = notebook_utils.collect_notebook_paths(argv[1:])

  for path in paths:
    mode = "Fix" if FLAGS.fix else "Lint"
    print(f"{mode} notebook: {path}")

    status = nb_linter.run(path, lint_dict, user_args)
    if not status.is_success:
      linter_fails.append(path)

    if FLAGS.fix:
      status.fix_lints()
    else:
      print(status)

  # Fix mode always exits as success.
  if FLAGS.fix:
    sys.exit(0)

  if linter_fails:
    _print_fails(linter_fails)
    sys.exit(1)
  else:
    sys.exit(0)