| OLD | NEW | 
|---|
| 1 # This Source Code Form is subject to the terms of the Mozilla Public | 1 # This Source Code Form is subject to the terms of the Mozilla Public | 
| 2 # License, v. 2.0. If a copy of the MPL was not distributed with this | 2 # License, v. 2.0. If a copy of the MPL was not distributed with this | 
| 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. | 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. | 
| 4 | 4 | 
| 5 from __future__ import print_function | 5 from __future__ import print_function | 
| 6 | 6 | 
| 7 import os | 7 import os | 
| 8 import re | 8 import re | 
| 9 import codecs | 9 import codecs | 
| 10 import subprocess | 10 import subprocess | 
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 111     if repo_has_outgoing(): | 111     if repo_has_outgoing(): | 
| 112         return continue_with_outgoing() | 112         return continue_with_outgoing() | 
| 113     return True | 113     return True | 
| 114 | 114 | 
| 115 | 115 | 
| 116 def run(baseDir, type, version, keyFile, downloadsRepo): | 116 def run(baseDir, type, version, keyFile, downloadsRepo): | 
| 117     if not can_safely_release(baseDir, downloadsRepo): | 117     if not can_safely_release(baseDir, downloadsRepo): | 
| 118         print('Aborting release.') | 118         print('Aborting release.') | 
| 119         return 1 | 119         return 1 | 
| 120 | 120 | 
| 121     if type == 'safari': | 121     if type == 'edge': | 
| 122         import buildtools.packagerSafari as packager |  | 
| 123     elif type == 'edge': |  | 
| 124         import buildtools.packagerEdge as packager | 122         import buildtools.packagerEdge as packager | 
| 125     elif type == 'chrome': | 123     elif type == 'chrome': | 
| 126         import buildtools.packagerChrome as packager | 124         import buildtools.packagerChrome as packager | 
| 127 | 125 | 
| 128     # Replace version number in metadata file "manually", ConfigParser will mess | 126     # Replace version number in metadata file "manually", ConfigParser will mess | 
| 129     # up the order of lines. | 127     # up the order of lines. | 
| 130     metadata = readMetadata(baseDir, type) | 128     metadata = readMetadata(baseDir, type) | 
| 131     with open(metadata.option_source('general', 'version'), 'r+b') as file: | 129     with open(metadata.option_source('general', 'version'), 'r+b') as file: | 
| 132         rawMetadata = file.read() | 130         rawMetadata = file.read() | 
| 133         rawMetadata = re.sub( | 131         rawMetadata = re.sub( | 
| 134             r'^(\s*version\s*=\s*).*', r'\g<1>%s' % version, | 132             r'^(\s*version\s*=\s*).*', r'\g<1>%s' % version, | 
| 135             rawMetadata, flags=re.I | re.M | 133             rawMetadata, flags=re.I | re.M | 
| 136         ) | 134         ) | 
| 137 | 135 | 
| 138         file.seek(0) | 136         file.seek(0) | 
| 139         file.write(rawMetadata) | 137         file.write(rawMetadata) | 
| 140         file.truncate() | 138         file.truncate() | 
| 141 | 139 | 
| 142     # Read extension name from locale data | 140     # Read extension name from locale data | 
| 143     default_locale_path = os.path.join('_locales', packager.defaultLocale, | 141     default_locale_path = os.path.join('_locales', packager.defaultLocale, | 
| 144                                        'messages.json') | 142                                        'messages.json') | 
| 145     with open(default_locale_path, 'r') as fp: | 143     with open(default_locale_path, 'r') as fp: | 
| 146         extensionName = json.load(fp)['name'] | 144         extensionName = json.load(fp)['name'] | 
| 147 | 145 | 
| 148     # Now commit the change and tag it | 146     # Now commit the change and tag it | 
| 149     subprocess.check_call(['hg', 'commit', '-R', baseDir, '-m', 'Releasing %s %s
     ' % (extensionName, version)]) | 147     subprocess.check_call(['hg', 'commit', '-R', baseDir, '-m', 'Releasing %s %s
     ' % (extensionName, version)]) | 
| 150     tag_name = version | 148     tag_name = version | 
| 151     if type in {'safari', 'edge'}: | 149     if type == 'edge': | 
| 152         tag_name = '{}-{}'.format(tag_name, type) | 150         tag_name = '{}-{}'.format(tag_name, type) | 
| 153     subprocess.check_call(['hg', 'tag', '-R', baseDir, '-f', tag_name]) | 151     subprocess.check_call(['hg', 'tag', '-R', baseDir, '-f', tag_name]) | 
| 154 | 152 | 
| 155     # Create a release build | 153     # Create a release build | 
| 156     downloads = [] | 154     downloads = [] | 
| 157     if type == 'chrome': | 155     if type == 'chrome': | 
| 158         # Create both signed and unsigned Chrome builds (the latter for Chrome W
     eb Store). | 156         # Create both signed and unsigned Chrome builds (the latter for Chrome W
     eb Store). | 
| 159         buildPath = os.path.join(downloadsRepo, getDefaultFileName(metadata, ver
     sion, 'crx')) | 157         buildPath = os.path.join(downloadsRepo, getDefaultFileName(metadata, ver
     sion, 'crx')) | 
| 160         packager.createBuild(baseDir, type=type, outFile=buildPath, releaseBuild
     =True, keyFile=keyFile) | 158         packager.createBuild(baseDir, type=type, outFile=buildPath, releaseBuild
     =True, keyFile=keyFile) | 
| 161         downloads.append(buildPath) | 159         downloads.append(buildPath) | 
| 162 | 160 | 
| 163         buildPathUnsigned = os.path.join(baseDir, getDefaultFileName(metadata, v
     ersion, 'zip')) | 161         buildPathUnsigned = os.path.join(baseDir, getDefaultFileName(metadata, v
     ersion, 'zip')) | 
| 164         packager.createBuild(baseDir, type=type, outFile=buildPathUnsigned, rele
     aseBuild=True, keyFile=None) | 162         packager.createBuild(baseDir, type=type, outFile=buildPathUnsigned, rele
     aseBuild=True, keyFile=None) | 
| 165     elif type == 'safari': |  | 
| 166         buildPath = os.path.join(downloadsRepo, getDefaultFileName(metadata, ver
     sion, 'safariextz')) |  | 
| 167         packager.createBuild(baseDir, type='safari', outFile=buildPath, releaseB
     uild=True, keyFile=keyFile) |  | 
| 168         downloads.append(buildPath) |  | 
| 169     elif type == 'edge': | 163     elif type == 'edge': | 
| 170         # We only offer the Edge extension for use through the Windows Store | 164         # We only offer the Edge extension for use through the Windows Store | 
| 171         buildPath = os.path.join(downloadsRepo, getDefaultFileName(metadata, ver
     sion, 'appx')) | 165         buildPath = os.path.join(downloadsRepo, getDefaultFileName(metadata, ver
     sion, 'appx')) | 
| 172         packager.createBuild(baseDir, type=type, outFile=buildPath, releaseBuild
     =True) | 166         packager.createBuild(baseDir, type=type, outFile=buildPath, releaseBuild
     =True) | 
| 173         downloads.append(buildPath) | 167         downloads.append(buildPath) | 
| 174 | 168 | 
| 175     # Create source archive | 169     # Create source archive | 
| 176     archivePath = os.path.splitext(buildPath)[0] + '-source.tgz' | 170     archivePath = os.path.splitext(buildPath)[0] + '-source.tgz' | 
| 177     create_sourcearchive(baseDir, archivePath) | 171     create_sourcearchive(baseDir, archivePath) | 
| 178     downloads.append(archivePath) | 172     downloads.append(archivePath) | 
| 179 | 173 | 
| 180     # Now add the downloads and commit | 174     # Now add the downloads and commit | 
| 181     subprocess.check_call(['hg', 'add', '-R', downloadsRepo] + downloads) | 175     subprocess.check_call(['hg', 'add', '-R', downloadsRepo] + downloads) | 
| 182     subprocess.check_call(['hg', 'commit', '-R', downloadsRepo, '-m', 'Releasing
      %s %s' % (extensionName, version)]) | 176     subprocess.check_call(['hg', 'commit', '-R', downloadsRepo, '-m', 'Releasing
      %s %s' % (extensionName, version)]) | 
| 183 | 177 | 
| 184     # Push all changes | 178     # Push all changes | 
| 185     subprocess.check_call(['hg', 'push', '-R', baseDir]) | 179     subprocess.check_call(['hg', 'push', '-R', baseDir]) | 
| 186     subprocess.check_call(['hg', 'push', '-R', downloadsRepo]) | 180     subprocess.check_call(['hg', 'push', '-R', downloadsRepo]) | 
| OLD | NEW | 
|---|