| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # | 2 # |
| 3 # Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 3 # Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 4 # for details. All rights reserved. Use of this source code is governed by a | 4 # for details. All rights reserved. Use of this source code is governed by a |
| 5 # BSD-style license that can be found in the LICENSE file. | 5 # BSD-style license that can be found in the LICENSE file. |
| 6 # | 6 # |
| 7 | 7 |
| 8 # Script to build a Debian packages from a Dart tarball. The script | 8 # Script to build a Debian packages from a Dart tarball. The script |
| 9 # will build a source package and a 32-bit (i386) and 64-bit (amd64) | 9 # will build a source package and a 32-bit (i386) and 64-bit (amd64) |
| 10 # binary packages. | 10 # binary packages. |
| 11 | 11 |
| 12 import optparse | 12 import optparse |
| 13 import platform |
| 13 import sys | 14 import sys |
| 14 import tarfile | 15 import tarfile |
| 15 import subprocess | 16 import subprocess |
| 16 import utils | 17 import utils |
| 17 | 18 import os |
| 18 from os.path import join, exists, abspath | 19 from os.path import join, exists, abspath |
| 19 from shutil import copyfile | 20 from shutil import copyfile |
| 20 | 21 |
| 21 HOST_OS = utils.GuessOS() | 22 HOST_OS = utils.GuessOS() |
| 22 HOST_CPUS = utils.GuessCpus() | 23 HOST_CPUS = utils.GuessCpus() |
| 23 DART_DIR = abspath(join(__file__, '..', '..')) | 24 DART_DIR = abspath(join(__file__, '..', '..')) |
| 24 | 25 |
| 25 def BuildOptions(): | 26 def BuildOptions(): |
| 26 result = optparse.OptionParser() | 27 result = optparse.OptionParser() |
| 27 result.add_option("--tar_filename", | 28 result.add_option("--tar_filename", |
| 28 default=None, | 29 default=None, |
| 29 help="The tar file to build from.") | 30 help="The tar file to build from.") |
| 30 result.add_option("--out_dir", | 31 result.add_option("--out_dir", |
| 31 default=None, | 32 default=None, |
| 32 help="Where to put the packages.") | 33 help="Where to put the packages.") |
| 33 | 34 |
| 34 return result | 35 return result |
| 35 | 36 |
| 36 def RunBuildPackage(opt, cwd): | 37 def RunBuildPackage(opt, cwd): |
| 37 cmd = ['dpkg-buildpackage', '-j%d' % HOST_CPUS] | 38 cmd = ['dpkg-buildpackage', '-j%d' % HOST_CPUS] |
| 38 cmd.extend(opt) | 39 cmd.extend(opt) |
| 39 process = subprocess.Popen(cmd, | 40 process = subprocess.Popen(cmd, |
| 40 stdout=subprocess.PIPE, stderr=subprocess.PIPE, | 41 stdout=subprocess.PIPE, stderr=subprocess.PIPE, |
| 41 cwd=cwd) | 42 cwd=cwd) |
| 42 (stdout, stderr) = process.communicate() | 43 (stdout, stderr) = process.communicate() |
| 43 if process.returncode != 0: | 44 if process.returncode != 0: |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 '%s-1.dsc' % debbase, | 79 '%s-1.dsc' % debbase, |
| 79 '%s.orig.tar.gz' % debbase, | 80 '%s.orig.tar.gz' % debbase, |
| 80 '%s-1.debian.tar.gz' % debbase | 81 '%s-1.debian.tar.gz' % debbase |
| 81 ] | 82 ] |
| 82 i386_package = [ | 83 i386_package = [ |
| 83 '%s-1_i386.deb' % debbase | 84 '%s-1_i386.deb' % debbase |
| 84 ] | 85 ] |
| 85 amd64_package = [ | 86 amd64_package = [ |
| 86 '%s-1_amd64.deb' % debbase | 87 '%s-1_amd64.deb' % debbase |
| 87 ] | 88 ] |
| 89 |
| 88 for name in source_package: | 90 for name in source_package: |
| 89 copyfile(join(temp_dir, name), join(out_dir, name)) | 91 copyfile(join(temp_dir, name), join(out_dir, name)) |
| 90 for name in i386_package: | 92 for name in i386_package: |
| 91 copyfile(join(temp_dir, name), join(out_dir, name)) | 93 copyfile(join(temp_dir, name), join(out_dir, name)) |
| 92 for name in amd64_package: | 94 for name in amd64_package: |
| 93 copyfile(join(temp_dir, name), join(out_dir, name)) | 95 copyfile(join(temp_dir, name), join(out_dir, name)) |
| 94 | 96 |
| 95 def Main(): | 97 def Main(): |
| 96 if HOST_OS != 'linux': | 98 if HOST_OS != 'linux': |
| 97 print 'Debian build only supported on linux' | 99 print 'Debian build only supported on linux' |
| 98 return -1 | 100 return -1 |
| 99 | 101 |
| 100 options, args = BuildOptions().parse_args() | 102 options, args = BuildOptions().parse_args() |
| 101 out_dir = options.out_dir | 103 out_dir = options.out_dir |
| 102 tar_filename = options.tar_filename | 104 tar_filename = options.tar_filename |
| 103 if not options.out_dir: | 105 if not options.out_dir: |
| 104 out_dir = join(DART_DIR, utils.GetBuildDir(HOST_OS, HOST_OS)) | 106 out_dir = join(DART_DIR, utils.GetBuildDir(HOST_OS, HOST_OS)) |
| 105 if not options.tar_filename: | 107 |
| 106 raise Exception('Please specify the input filename.') | 108 if not tar_filename: |
| 107 BuildDebianPackage(options.tar_filename, options.out_dir) | 109 tar_filename = join(DART_DIR, |
| 110 utils.GetBuildDir(HOST_OS, HOST_OS), |
| 111 'dart-%s.tar.gz' % utils.GetVersion()) |
| 112 |
| 113 BuildDebianPackage(tar_filename, out_dir) |
| 108 | 114 |
| 109 if __name__ == '__main__': | 115 if __name__ == '__main__': |
| 110 sys.exit(Main()) | 116 sys.exit(Main()) |
| OLD | NEW |