old_contents: #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  
  import sys
  import json
  
  # Regressions for these tools do not cause failure.
  REGRESSION_OK = ["rustc-guide", "miri", "embedded-book"]
  
  if __name__ == '__main__':
      os_name = sys.argv[1]
      toolstate_file = sys.argv[2]
      current_state = sys.argv[3]
      verb = sys.argv[4] # 'regressed' or 'changed'
  
      with open(toolstate_file, 'r') as f:
          toolstate = json.load(f)
      with open(current_state, 'r') as f:
          current = json.load(f)
  
      regressed = False
      for cur in current:
          tool = cur['tool']
          state = cur[os_name]
          new_state = toolstate.get(tool, '')
          if verb == 'regressed':
              updated = new_state < state
          elif verb == 'changed':
              updated = new_state != state
          else:
              print('Unknown verb {}'.format(updated))
              sys.exit(2)
          if updated:
              print(
                  'The state of "{}" has {} from "{}" to "{}"'
                  .format(tool, verb, state, new_state)
              )
              if tool not in REGRESSION_OK:
                  regressed = True
  
      if regressed:
          sys.exit(1)
  
new_contents: #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  
  import sys
  import json
  
  # Regressions for these tools do not cause failure.
  REGRESSION_OK = ["rustc-guide", "miri", "embedded-book"]
  
  if __name__ == '__main__':
      os_name = sys.argv[1]
      toolstate_file = sys.argv[2]
      current_state = sys.argv[3]
      verb = sys.argv[4] # 'regressed' or 'changed'
  
      with open(toolstate_file, 'r') as f:
          toolstate = json.load(f)
      with open(current_state, 'r') as f:
          current = json.load(f)
  
      regressed = False
      for cur in current:
          tool = cur['tool']
          state = cur[os_name]
          new_state = toolstate.get(tool, '')
          if verb == 'regressed':
              updated = new_state < state
          elif verb == 'changed':
              updated = new_state != state
          else:
              print('Unknown verb {}'.format(updated))
              sys.exit(2)
          if updated:
              print(
                  'The state of "{}" has {} from "{}" to "{}"'
                  .format(tool, verb, state, new_state)
              )
              if not (verb == 'regressed' and tool in REGRESSION_OK):
                  regressed = True
  
      if regressed:
          sys.exit(1)
  
subject: Update src/ci/docker/x86_64-gnu-tools/checkregression.py