Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: build.py

Issue 30059555: Noissue - remove 'docs' command (Closed) Base URL: https://hg.adblockplus.org/buildtools/file/3472c2a61a4e
Patch Set: Created June 9, 2019, 9:37 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 import argparse 5 import argparse
6 import logging 6 import logging
7 import io 7 import io
8 import json 8 import json
9 import os 9 import os
10 import re 10 import re
11 import shutil 11 import shutil
12 import subprocess
13 import sys
14 from urllib import urlencode 12 from urllib import urlencode
15 import urllib2 13 import urllib2
16 from functools import partial 14 from functools import partial
17 from StringIO import StringIO 15 from StringIO import StringIO
18 from zipfile import ZipFile 16 from zipfile import ZipFile
19 from buildtools.localeTools import read_locale_config 17 from buildtools.localeTools import read_locale_config
20 18
21 KNOWN_PLATFORMS = {'chrome', 'gecko', 'edge', 'generic'} 19 KNOWN_PLATFORMS = {'chrome', 'gecko', 'edge', 'generic'}
22 20
23 MAIN_PARSER = argparse.ArgumentParser( 21 MAIN_PARSER = argparse.ArgumentParser(
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 from buildtools.packager import readMetadata 277 from buildtools.packager import readMetadata
280 metadata = readMetadata(base_dir, platform) 278 metadata = readMetadata(base_dir, platform)
281 279
282 basename = metadata.get('general', 'basename') 280 basename = metadata.get('general', 'basename')
283 locale_config = read_locale_config(base_dir, platform, metadata) 281 locale_config = read_locale_config(base_dir, platform, metadata)
284 282
285 import buildtools.localeTools as localeTools 283 import buildtools.localeTools as localeTools
286 localeTools.getTranslations(locale_config, basename, project_key) 284 localeTools.getTranslations(locale_config, basename, project_key)
287 285
288 286
289 @argparse_command(
290 valid_platforms={'chrome'},
291 arguments=(
292 make_argument('target_dir'),
293 make_argument('-q', '--quiet', help='Suppress JsDoc output',
294 action='store_true', default=False),
295 ),
296 )
297 def docs(base_dir, target_dir, quiet, platform, **kwargs):
298 """
299 Generate documentation (requires node.js).
300
301 Generate documentation files and write them into the specified directory.
302 """
303 source_dir = os.path.join(base_dir, 'lib')
304
305 # JSDoc struggles wih huge objects:
306 # https://github.com/jsdoc3/jsdoc/issues/976
307 sources = [os.path.join(source_dir, filename)
308 for filename in os.listdir(source_dir)
309 if filename != 'publicSuffixList.js']
310
311 buildtools_path = os.path.dirname(__file__)
312 config = os.path.join(buildtools_path, 'jsdoc.conf')
313
314 command = ['npm', 'run-script', 'jsdoc', '--', '--destination', target_dir,
315 '--configure', config] + sources
316 if quiet:
317 process = subprocess.Popen(command, stdout=subprocess.PIPE,
318 stderr=subprocess.PIPE, cwd=buildtools_path)
319 stderr = process.communicate()[1]
320 retcode = process.poll()
321 if retcode:
322 sys.stderr.write(stderr)
323 raise subprocess.CalledProcessError(command, retcode)
324 else:
325 subprocess.check_call(command, cwd=buildtools_path)
326
327
328 def valid_version_format(value): 287 def valid_version_format(value):
329 if re.search(r'[^\d\.]', value): 288 if re.search(r'[^\d\.]', value):
330 raise argparse.ArgumentTypeError('Wrong version number format') 289 raise argparse.ArgumentTypeError('Wrong version number format')
331 290
332 return value 291 return value
333 292
334 293
335 @argparse_command( 294 @argparse_command(
336 valid_platforms={'chrome', 'gecko', 'edge'}, multi_platform=True, 295 valid_platforms={'chrome', 'gecko', 'edge'}, multi_platform=True,
337 arguments=( 296 arguments=(
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 if build_available_subcommands(base_dir): 355 if build_available_subcommands(base_dir):
397 MAIN_PARSER.set_defaults(base_dir=base_dir) 356 MAIN_PARSER.set_defaults(base_dir=base_dir)
398 357
399 # If no args are provided, this module is run directly from the command 358 # If no args are provided, this module is run directly from the command
400 # line. argparse will take care of consuming sys.argv. 359 # line. argparse will take care of consuming sys.argv.
401 arguments = MAIN_PARSER.parse_args(args if len(args) > 0 else None) 360 arguments = MAIN_PARSER.parse_args(args if len(args) > 0 else None)
402 361
403 function = arguments.function 362 function = arguments.function
404 del arguments.function 363 del arguments.function
405 function(**vars(arguments)) 364 function(**vars(arguments))
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld