1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42

build / config / mac / prepare_framework_version.py [blame]

# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import os
import shutil
import sys

# Ensures that the current version matches the last-produced version, which is
# stored in the version_file. If it does not, then the framework_root_dir is
# obliterated.
# Usage: python prepare_framework_version.py out/obj/version_file \
#                                            out/Framework.framework \
#                                            'A'

def PrepareFrameworkVersion(version_file, framework_root_dir, version):
  # Test what the current framework version is. Stop if it is up-to-date.
  try:
    with open(version_file, 'r') as f:
      current_version = f.read()
      if current_version == version:
        return
  except IOError:
    pass

  # The framework version has changed, so clobber the framework.
  if os.path.exists(framework_root_dir):
    shutil.rmtree(framework_root_dir)

  # Write out the new framework version file, making sure its containing
  # directory exists.
  dirname = os.path.dirname(version_file)
  if not os.path.isdir(dirname):
    os.makedirs(dirname, 0o700)

  with open(version_file, 'w+') as f:
    f.write(version)


if __name__ == '__main__':
  PrepareFrameworkVersion(sys.argv[1], sys.argv[2], sys.argv[3])
  sys.exit(0)