#!/usr/bin/env python
# Copyright 2020 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.
"""Updates the DocumentPolicyFeature enum in enums.xml file with
values read from document_policy_feature.mojom.

If the file was pretty-printed, the updated version is pretty-printed too.
"""

from __future__ import print_function

import os
import sys

from update_histogram_enum import UpdateHistogramEnum

if __name__ == '__main__':
  if len(sys.argv) > 1:
    print('No arguments expected!', file=sys.stderr)
    sys.stderr.write(__doc__)
    sys.exit(1)

  source_file = 'third_party/blink/public/mojom/permissions_policy/' \
                'document_policy_feature.mojom'
  UpdateHistogramEnum(
      histogram_enum_name='DocumentPolicyFeature',
      source_enum_path=source_file,
      start_marker='^enum DocumentPolicyFeature {',
      end_marker='^};',
      strip_k_prefix=True,
      calling_script=os.path.basename(__file__))
