Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(147)

Side by Side Diff: dart/tools/make_links.py

Issue 315943003: Packages for Try Dart and dart2js. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Merged with r37435. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « dart/pkg/pkg.gyp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a 3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file. 4 # BSD-style license that can be found in the LICENSE file.
5 5
6 6
7 '''Tool for creating symlinks from SOURCES to TARGET. 7 '''Tool for creating symlinks from SOURCES to TARGET.
8 8
9 For each SOURCE in SOURCES create a link from SOURCE to TARGET. If a 9 For each SOURCE in SOURCES create a link from SOURCE to TARGET. If a
10 SOURCE ends with .../lib, the lib suffix is ignored when determining 10 SOURCE ends with .../lib, the lib suffix is ignored when determining
(...skipping 14 matching lines...) Expand all
25 import utils 25 import utils
26 26
27 27
28 def get_options(): 28 def get_options():
29 result = optparse.OptionParser() 29 result = optparse.OptionParser()
30 result.add_option("--timestamp_file", "", 30 result.add_option("--timestamp_file", "",
31 help='Create a timestamp file when done creating the links.', 31 help='Create a timestamp file when done creating the links.',
32 default='') 32 default='')
33 return result.parse_args() 33 return result.parse_args()
34 34
35 def make_link(source, target): 35 def make_link(source, target, orig_source):
36 if os.path.islink(target): 36 if os.path.islink(target):
37 print 'Removing %s' % target 37 print 'Removing %s' % target
38 sys.stdout.flush() 38 sys.stdout.flush()
39 os.unlink(target) 39 os.unlink(target)
40 40
41 if os.path.isdir(target): 41 if os.path.isdir(target):
42 print 'Removing %s' % target 42 print 'Removing %s' % target
43 sys.stdout.flush() 43 sys.stdout.flush()
44 os.rmdir(target) 44 os.rmdir(target)
45 45
46 print 'Creating link from %s to %s' % (source, target) 46 if os.path.isfile(orig_source):
47 sys.stdout.flush() 47 print 'Copying file from %s to %s' % (orig_source, target)
48 sys.stdout.flush()
49 shutil.copyfile(orig_source, target)
50 return 0
51 else:
52 print 'Creating link from %s to %s' % (source, target)
53 sys.stdout.flush()
48 54
49 if utils.GuessOS() == 'win32': 55 if utils.GuessOS() == 'win32':
50 return subprocess.call(['mklink', '/j', target, source], shell=True) 56 return subprocess.call(['mklink', '/j', target, source], shell=True)
51 else: 57 else:
52 return subprocess.call(['ln', '-s', source, target]) 58 return subprocess.call(['ln', '-s', source, target])
53 59
54 def create_timestamp_file(options): 60 def create_timestamp_file(options):
55 if options.timestamp_file != '': 61 if options.timestamp_file != '':
56 dir_name = os.path.dirname(options.timestamp_file) 62 dir_name = os.path.dirname(options.timestamp_file)
57 if not os.path.exists(dir_name): 63 if not os.path.exists(dir_name):
58 os.mkdir(dir_name) 64 os.mkdir(dir_name)
59 open(options.timestamp_file, 'w').close() 65 open(options.timestamp_file, 'w').close()
60 66
61 67
62 def main(argv): 68 def main(argv):
(...skipping 12 matching lines...) Expand all
75 os.remove(os.path.join(target, link)) 81 os.remove(os.path.join(target, link))
76 else: 82 else:
77 os.makedirs(target) 83 os.makedirs(target)
78 for source in args[1:]: 84 for source in args[1:]:
79 # Assume the source directory is named ".../NAME/lib". 85 # Assume the source directory is named ".../NAME/lib".
80 (name, lib) = os.path.split(source) 86 (name, lib) = os.path.split(source)
81 if lib != 'lib': 87 if lib != 'lib':
82 name = source 88 name = source
83 # Remove any addtional path components preceding NAME. 89 # Remove any addtional path components preceding NAME.
84 (path, name) = os.path.split(name) 90 (path, name) = os.path.split(name)
91 orig_source = source
85 if utils.GuessOS() == 'win32': 92 if utils.GuessOS() == 'win32':
86 source = os.path.relpath(source) 93 source = os.path.relpath(source)
87 else: 94 else:
88 source = os.path.relpath(source, start=target) 95 source = os.path.relpath(source, start=target)
89 exit_code = make_link(source, os.path.join(target, name)) 96 exit_code = make_link(source, os.path.join(target, name), orig_source)
90 if exit_code != 0: 97 if exit_code != 0:
91 return exit_code 98 return exit_code
92 create_timestamp_file(options) 99 create_timestamp_file(options)
93 return 0 100 return 0
94 101
95 102
96 if __name__ == '__main__': 103 if __name__ == '__main__':
97 sys.exit(main(sys.argv)) 104 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « dart/pkg/pkg.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698