old_contents: #!/usr/bin/python
  
  #
  # Copyright 2019, The Android Open Source Project
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  #
  
  """Script that will remind developers to run updateApi."""
  
  import argparse
  import sys
  
  
  WARNING_COLOR = '\033[93m'
  END_COLOR = '\033[0m'
  
  WARNING = """
  {}**********************************************************************
  You changed library classes, but you have no current.txt changes.
  Did you forget to run ./gradlew updateApi?
  **********************************************************************{}
  """.format(WARNING_COLOR, END_COLOR)
  
  
  def main(args=None):
    parser = argparse.ArgumentParser()
    parser.add_argument('--file', '-f', nargs='*')
    parser.set_defaults(format=False)
    args = parser.parse_args()
    api_files = [f for f in args.file
                 if f.endswith('.txt') and '/api/' in f]
    if len(api_files) > 0:
      sys.exit(0)
  
    for f in args.file:
      if (not "buildSrc/" in f and
          "/src/main/" in f or
          "/src/commonMain/" in f or
          "/src/androidMain/" in f):
        print(WARNING)
        sys.exit(77) # 77 is a warning code in repohooks
    sys.exit(0)
  
  if __name__ == '__main__':
    main()
  
new_contents: #!/usr/bin/python
  
  #
  # Copyright 2019, The Android Open Source Project
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  #
  
  """Script that will remind developers to run updateApi."""
  
  import argparse
  import os.path
  import sys
  
  
  
  WARNING_COLOR = '\033[33m'
  END_COLOR = '\033[0m'
  
  WARNING_NO_API_FILES = """
  {}**********************************************************************
  You changed library classes, but you have no current.txt changes.
  Did you forget to run ./gradlew updateApi?
  **********************************************************************{}
  """.format(WARNING_COLOR, END_COLOR)
  
  WARNING_OLD_API_FILES = """
  {}**********************************************************************
  Your current.txt is older than your current changes in library classes.
  Did you forget to re-run ./gradlew updateApi?
  **********************************************************************{}
  """.format(WARNING_COLOR, END_COLOR)
  
  
  def main(args=None):
    parser = argparse.ArgumentParser()
    parser.add_argument('--file', '-f', nargs='*')
    parser.set_defaults(format=False)
    args = parser.parse_args()
    api_files = [f for f in args.file
                 if f.endswith('.txt') and '/api/' in f]
    source_files = [f for f in args.file
                 if (not "buildSrc/" in f and
                    "/src/main/" in f or
                    "/src/commonMain/" in f or
                    "/src/androidMain/" in f)]
    if len(source_files) == 0:
      sys.exit(0)
  
    if len(api_files) == 0:
      print(WARNING_NO_API_FILES)
      sys.exit(77) # 77 is a warning code in repohooks
  
    last_source_timestamp = max([os.path.getmtime(f) for f in source_files])
    last_api_timestamp = max([os.path.getmtime(f) for f in api_files])
  
    if last_source_timestamp > last_api_timestamp:
      print(WARNING_OLD_API_FILES)
      sys.exit(77) # 77 is a warning code in repohooks
    sys.exit(0)
  
  if __name__ == '__main__':
    main()
  
subject: Extend updateApi warning with timestamp check.