mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
# Copyright 2016 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.
|
|
|
|
import argparse
|
|
import errno
|
|
import os
|
|
import shutil
|
|
import sys
|
|
|
|
def Main():
|
|
parser = argparse.ArgumentParser(description='Create Mac Framework symlinks')
|
|
parser.add_argument('--framework', action='store', type=str, required=True)
|
|
parser.add_argument('--version', action='store', type=str)
|
|
parser.add_argument('--contents', action='store', type=str, nargs='+')
|
|
parser.add_argument('--stamp', action='store', type=str, required=True)
|
|
args = parser.parse_args()
|
|
|
|
VERSIONS = 'Versions'
|
|
CURRENT = 'Current'
|
|
|
|
# Ensure the Foo.framework/Versions/A/ directory exists and create the
|
|
# Foo.framework/Versions/Current symlink to it.
|
|
if args.version:
|
|
try:
|
|
os.makedirs(os.path.join(args.framework, VERSIONS, args.version), 0744)
|
|
except OSError as e:
|
|
if e.errno != errno.EEXIST:
|
|
raise e
|
|
_Relink(os.path.join(args.version),
|
|
os.path.join(args.framework, VERSIONS, CURRENT))
|
|
|
|
# Establish the top-level symlinks in the framework bundle. The dest of
|
|
# the symlinks may not exist yet.
|
|
if args.contents:
|
|
for item in args.contents:
|
|
_Relink(os.path.join(VERSIONS, CURRENT, item),
|
|
os.path.join(args.framework, item))
|
|
|
|
# Write out a stamp file.
|
|
if args.stamp:
|
|
with open(args.stamp, 'w') as f:
|
|
f.write(str(args))
|
|
|
|
return 0
|
|
|
|
|
|
def _Relink(dest, link):
|
|
"""Creates a symlink to |dest| named |link|. If |link| already exists,
|
|
it is overwritten."""
|
|
try:
|
|
os.remove(link)
|
|
except OSError as e:
|
|
if e.errno != errno.ENOENT:
|
|
shutil.rmtree(link)
|
|
os.symlink(dest, link)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(Main())
|