| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # | 2 # |
| 3 # Copyright (c) 2015, the Dartino project authors. Please see the AUTHORS file | 3 # Copyright (c) 2015, the Dartino 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 tarball of the Dartino source. | 8 # Script to build a tarball of the Dartino source. |
| 9 # | 9 # |
| 10 # The tarball includes all the source needed to build Dartino. This | 10 # The tarball includes all the source needed to build Dartino. This |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 import optparse | 26 import optparse |
| 27 import sys | 27 import sys |
| 28 import tarfile | 28 import tarfile |
| 29 from os import listdir | 29 from os import listdir |
| 30 from os.path import join, split, abspath | 30 from os.path import join, split, abspath |
| 31 | 31 |
| 32 import utils | 32 import utils |
| 33 | 33 |
| 34 | 34 |
| 35 HOST_OS = utils.GuessOS() | 35 HOST_OS = utils.GuessOS() |
| 36 FLETCH_DIR = abspath(join(__file__, '..', '..')) | 36 DARTINO_DIR = abspath(join(__file__, '..', '..')) |
| 37 # The repository directory where dartino, dart and third_party are located. | 37 # The repository directory where dartino, dart and third_party are located. |
| 38 REPO_DIR = abspath(join(__file__, '..', '..', '..')) | 38 REPO_DIR = abspath(join(__file__, '..', '..', '..')) |
| 39 # Flags. | 39 # Flags. |
| 40 verbose = False | 40 verbose = False |
| 41 | 41 |
| 42 # Name of the dartino directory when unpacking the tarball. | 42 # Name of the dartino directory when unpacking the tarball. |
| 43 versiondir = '' | 43 versiondir = '' |
| 44 | 44 |
| 45 # Ignore Git/SVN files, checked-in binaries, backup files, etc. | 45 # Ignore Git/SVN files, checked-in binaries, backup files, etc. |
| 46 # | 46 # |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 original_name = tar_info.name[len(REPO_DIR):] | 80 original_name = tar_info.name[len(REPO_DIR):] |
| 81 _, tail = split(original_name) | 81 _, tail = split(original_name) |
| 82 if tail in ignoredDirs: | 82 if tail in ignoredDirs: |
| 83 return None | 83 return None |
| 84 for path in ignoredPaths: | 84 for path in ignoredPaths: |
| 85 if original_name.startswith(path): | 85 if original_name.startswith(path): |
| 86 return None | 86 return None |
| 87 for ending in ignoredEndings: | 87 for ending in ignoredEndings: |
| 88 if original_name.endswith(ending): | 88 if original_name.endswith(ending): |
| 89 return None | 89 return None |
| 90 # Add the fletch directory name with version. Place the debian | 90 # Add the dartino directory name with version. Place the debian |
| 91 # directory one level over the rest which are placed in the | 91 # directory one level over the rest which are placed in the |
| 92 # directory 'fletch'. This enables building the Debian packages | 92 # directory 'dartino'. This enables building the Debian packages |
| 93 # out-of-the-box. | 93 # out-of-the-box. |
| 94 tar_info.name = join(versiondir, original_name) | 94 tar_info.name = join(versiondir, original_name) |
| 95 if verbose: | 95 if verbose: |
| 96 print 'Adding %s as %s' % (original_name, tar_info.name) | 96 print 'Adding %s as %s' % (original_name, tar_info.name) |
| 97 return tar_info | 97 return tar_info |
| 98 | 98 |
| 99 def GenerateCopyright(filename): | 99 def GenerateCopyright(filename): |
| 100 with open(join(FLETCH_DIR, 'LICENSE.md')) as lf: | 100 with open(join(DARTINO_DIR, 'LICENSE.md')) as lf: |
| 101 license_lines = lf.readlines() | 101 license_lines = lf.readlines() |
| 102 | 102 |
| 103 with open(filename, 'w') as f: | 103 with open(filename, 'w') as f: |
| 104 f.write('Name: dartino\n') | 104 f.write('Name: dartino\n') |
| 105 f.write('Maintainer: Dartino Team <misc@dartino.org>\n') | 105 f.write('Maintainer: Dartino Team <misc@dartino.org>\n') |
| 106 f.write('Source: https://github.com/dartino/sdk/\n') | 106 f.write('Source: https://github.com/dartino/sdk/\n') |
| 107 f.write('License:\n') | 107 f.write('License:\n') |
| 108 for line in license_lines: | 108 for line in license_lines: |
| 109 f.write(' %s' % line) # Line already contains trailing \n. | 109 f.write(' %s' % line) # Line already contains trailing \n. |
| 110 | 110 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 123 | 123 |
| 124 | 124 |
| 125 def CreateTarball(tarfilename): | 125 def CreateTarball(tarfilename): |
| 126 global ignoredPaths # Used for adding the output directory. | 126 global ignoredPaths # Used for adding the output directory. |
| 127 # Generate the name of the tarfile | 127 # Generate the name of the tarfile |
| 128 version = utils.GetVersion() | 128 version = utils.GetVersion() |
| 129 global versiondir | 129 global versiondir |
| 130 versiondir = 'dartino-%s' % version | 130 versiondir = 'dartino-%s' % version |
| 131 debian_dir = 'tools/linux_dist_support/debian' | 131 debian_dir = 'tools/linux_dist_support/debian' |
| 132 # Don't include the build directory in the tarball (ignored paths | 132 # Don't include the build directory in the tarball (ignored paths |
| 133 # are relative to FLETCH_DIR). | 133 # are relative to DARTINO_DIR). |
| 134 builddir = utils.GetBuildDir(HOST_OS) | 134 builddir = utils.GetBuildDir(HOST_OS) |
| 135 ignoredPaths.append(builddir) | 135 ignoredPaths.append(builddir) |
| 136 | 136 |
| 137 print 'Creating tarball: %s' % tarfilename | 137 print 'Creating tarball: %s' % tarfilename |
| 138 with tarfile.open(tarfilename, mode='w:gz') as tar: | 138 with tarfile.open(tarfilename, mode='w:gz') as tar: |
| 139 for f in listdir(FLETCH_DIR): | 139 for f in listdir(DARTINO_DIR): |
| 140 tar.add(join(FLETCH_DIR, f), filter=Filter) | 140 tar.add(join(DARTINO_DIR, f), filter=Filter) |
| 141 for f in listdir(join(FLETCH_DIR, debian_dir)): | 141 for f in listdir(join(DARTINO_DIR, debian_dir)): |
| 142 tar.add(join(FLETCH_DIR, debian_dir, f), | 142 tar.add(join(DARTINO_DIR, debian_dir, f), |
| 143 arcname='%s/debian/%s' % (versiondir, f)) | 143 arcname='%s/debian/%s' % (versiondir, f)) |
| 144 tar.add(join(FLETCH_DIR, 'platforms/raspberry-pi2/data/dartino-agent'), | 144 tar.add(join(DARTINO_DIR, 'platforms/raspberry-pi2/data/dartino-agent'), |
| 145 arcname='%s/debian/dartino-agent.init' % versiondir) | 145 arcname='%s/debian/dartino-agent.init' % versiondir) |
| 146 tar.add(join(FLETCH_DIR, 'platforms/raspberry-pi2/data/dartino-agent.env'), | 146 tar.add(join(DARTINO_DIR, 'platforms/raspberry-pi2/data/dartino-agent.env'), |
| 147 arcname='%s/debian/dartino-agent.default' % versiondir) | 147 arcname='%s/debian/dartino-agent.default' % versiondir) |
| 148 | 148 |
| 149 with utils.TempDir() as temp_dir: | 149 with utils.TempDir() as temp_dir: |
| 150 # Generate and add debian/copyright | 150 # Generate and add debian/copyright |
| 151 copyright_file = join(temp_dir, 'copyright') | 151 copyright_file = join(temp_dir, 'copyright') |
| 152 GenerateCopyright(copyright_file) | 152 GenerateCopyright(copyright_file) |
| 153 tar.add(copyright_file, arcname='%s/debian/copyright' % versiondir) | 153 tar.add(copyright_file, arcname='%s/debian/copyright' % versiondir) |
| 154 | 154 |
| 155 # Generate and add debian/changelog | 155 # Generate and add debian/changelog |
| 156 change_log = join(temp_dir, 'changelog') | 156 change_log = join(temp_dir, 'changelog') |
| (...skipping 13 matching lines...) Expand all Loading... |
| 170 | 170 |
| 171 # Parse the options. | 171 # Parse the options. |
| 172 parser = BuildOptions() | 172 parser = BuildOptions() |
| 173 (options, args) = parser.parse_args() | 173 (options, args) = parser.parse_args() |
| 174 if options.verbose: | 174 if options.verbose: |
| 175 global verbose | 175 global verbose |
| 176 verbose = True | 176 verbose = True |
| 177 | 177 |
| 178 tar_filename = options.tar_filename | 178 tar_filename = options.tar_filename |
| 179 if not tar_filename: | 179 if not tar_filename: |
| 180 tar_filename = join(FLETCH_DIR, | 180 tar_filename = join(DARTINO_DIR, |
| 181 utils.GetBuildDir(HOST_OS), | 181 utils.GetBuildDir(HOST_OS), |
| 182 'dartino-%s.tar.gz' % utils.GetVersion()) | 182 'dartino-%s.tar.gz' % utils.GetVersion()) |
| 183 | 183 |
| 184 CreateTarball(tar_filename) | 184 CreateTarball(tar_filename) |
| 185 | 185 |
| 186 if __name__ == '__main__': | 186 if __name__ == '__main__': |
| 187 sys.exit(Main()) | 187 sys.exit(Main()) |
| OLD | NEW |