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

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/tools/upload_chromevox_to_webstore.py

Issue 584313003: Enable runtime switching between ChromeVox and ChromeVox next via command line. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make changes to exclude files/paths from webstore release. Created 6 years, 3 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
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 2
3 # Copyright 2014 The Chromium Authors. All rights reserved. 3 # Copyright 2014 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 '''Publishes ChromeVox to the webstore. 7 '''Publishes ChromeVox to the webstore.
8 Given an unpacked extension, compresses and sends to the Chrome webstore. 8 Given an unpacked extension, compresses and sends to the Chrome webstore.
9 9
10 Releasing to the webstore should involve the following manual steps before 10 Releasing to the webstore should involve the following manual steps before
11 running this script: 11 running this script:
12 1. clean the output directory. 12 1. clean the output directory.
13 2. make a release build. 13 2. make a release build.
14 3. run manual smoke tests. 14 3. run manual smoke tests.
15 4. run automated ChromeVox tests. 15 4. run automated ChromeVox tests.
16 ''' 16 '''
17 17
18 import chromevox_webstore_util 18 import chromevox_webstore_util
19 import json 19 import json
20 import optparse 20 import optparse
21 import os 21 import os
22 import sys 22 import sys
23 import tempfile 23 import tempfile
24 from zipfile import ZipFile 24 from zipfile import ZipFile
25 25
26 # A list of files to exclude from the webstore build. 26 # A list of files (or directories) to exclude from the webstore build.
27 EXCLUDE_FILES = ['manifest_guest.json'] 27 EXCLUDE_PATHS = [
28 'cvox2/background/',
29 'deps.js',
30 'manifest_guest.json',
31 'manifest_next.json',
32 'manifest_next_guest.json'
33 ]
28 34
29 35
30 def CreateOptionParser(): 36 def CreateOptionParser():
31 parser = optparse.OptionParser(description=__doc__) 37 parser = optparse.OptionParser(description=__doc__)
32 parser.usage = '%prog <extension_path> <output_path> <client_secret' 38 parser.usage = '%prog <extension_path> <output_path> <client_secret'
33 return parser 39 return parser
34 40
35 def MakeManifestEdits(root, old, new_file): 41 def MakeManifestEdits(root, old, new_file):
36 '''Customize a manifest for the webstore. 42 '''Customize a manifest for the webstore.
37 43
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 print 'Expected exactly three arguments' 90 print 'Expected exactly three arguments'
85 sys.exit(1) 91 sys.exit(1)
86 92
87 extension_path = args[0] 93 extension_path = args[0]
88 output_path = args[1] 94 output_path = args[1]
89 client_secret = args[2] 95 client_secret = args[2]
90 96
91 with ZipFile(output_path, 'w') as zip: 97 with ZipFile(output_path, 'w') as zip:
92 for root, dirs, files in os.walk(extension_path): 98 for root, dirs, files in os.walk(extension_path):
93 rel_path = os.path.join(os.path.relpath(root, extension_path), '') 99 rel_path = os.path.join(os.path.relpath(root, extension_path), '')
100 if rel_path in EXCLUDE_PATHS:
101 continue
94 102
95 for extension_file in files: 103 for extension_file in files:
96 if extension_file in EXCLUDE_FILES: 104 if extension_file in EXCLUDE_PATHS:
97 continue 105 continue
98 if extension_file == 'manifest.json': 106 if extension_file == 'manifest.json':
99 new_file = tempfile.NamedTemporaryFile(mode='w+a', bufsize=0) 107 new_file = tempfile.NamedTemporaryFile(mode='w+a', bufsize=0)
100 MakeManifestEdits(root, extension_file, new_file) 108 MakeManifestEdits(root, extension_file, new_file)
101 zip.write( 109 zip.write(
102 new_file.name, os.path.join(rel_path, extension_file)) 110 new_file.name, os.path.join(rel_path, extension_file))
103 continue 111 continue
104 112
105 zip.write(os.path.join(root, extension_file), 113 zip.write(os.path.join(root, extension_file),
106 os.path.join(rel_path, extension_file)) 114 os.path.join(rel_path, extension_file))
107 print 'Created ChromeVox zip file in %s' % output_path 115 print 'Created ChromeVox zip file in %s' % output_path
108 print 'Please run manual smoke tests before proceeding.' 116 print 'Please run manual smoke tests before proceeding.'
109 RunInteractivePrompt(client_secret, output_path) 117 RunInteractivePrompt(client_secret, output_path)
110 118
111 119
112 if __name__ == '__main__': 120 if __name__ == '__main__':
113 main() 121 main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698