| #!/usr/bin/env python3 | |
| # | |
| # Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file | |
| # for details. All rights reserved. Use of this source code is governed by a | |
| # BSD-style license that can be found in the LICENSE file. | |
| import optparse | |
| import os | |
| import shutil | |
| import subprocess | |
| import sys | |
| from os.path import join, split, abspath, dirname | |
| sys.path.append(join(dirname(__file__), '..')) | |
| import utils | |
| DART_DIR = abspath(join(dirname(__file__), '..', '..')) | |
| def BuildOptions(): | |
| result = optparse.OptionParser() | |
| result.add_option("--version", default=None) | |
| result.add_option("--timestamp", default=None) | |
| result.add_option("--arch", default=None) | |
| result.add_option("--lib_dir", default=None) | |
| return result | |
| def GenerateCopyright(filename): | |
| with open(join(DART_DIR, 'LICENSE')) as lf: | |
| license_lines = lf.readlines() | |
| with open(filename, 'w') as f: | |
| f.write('Name: dart\n') | |
| f.write('Maintainer: Dart Team <misc@dartlang.org>\n') | |
| f.write('Source: https://dart.googlesource.com/sdk\n') | |
| f.write('License:\n') | |
| for line in license_lines: | |
| f.write(' %s' % line) # Line already contains trailing \n. | |
| def GenerateChangeLog(filename, version, timestamp): | |
| with open(filename, 'w') as f: | |
| f.write('dart (%s-1) UNRELEASED; urgency=low\n' % version) | |
| f.write('\n') | |
| f.write(' * Generated file.\n') | |
| f.write('\n') | |
| f.write(' -- Dart Team <misc@dartlang.org> %s\n' % timestamp) | |
| def Main(): | |
| parser = BuildOptions() | |
| (options, args) = parser.parse_args() | |
| version = options.version | |
| timestamp = options.timestamp | |
| versiondir = 'dart-%s' % version | |
| shutil.copytree(join(DART_DIR, 'tools', 'debian_package', 'debian'), | |
| join(versiondir, 'debian'), | |
| dirs_exist_ok=True) | |
| GenerateCopyright(join(versiondir, 'debian', 'copyright')) | |
| GenerateChangeLog(join(versiondir, 'debian', 'changelog'), version, | |
| timestamp) | |
| cmd = ['dpkg-buildpackage', '-B', '-a', options.arch, '-us', '-uc'] | |
| env = os.environ.copy() | |
| env["LIB_DIR"] = options.lib_dir | |
| process = subprocess.check_call(cmd, cwd=versiondir, env=env) | |
| if __name__ == '__main__': | |
| sys.exit(Main()) |