[Pkg-mozext-commits] [adblock-plus] 356/464: Use different metadata files for different platform types to allow different builds from the same repository - e.g. metadata.gecko and metadata.chrome
David Prévot
taffit at moszumanska.debian.org
Tue Jul 22 20:44:33 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository adblock-plus.
commit d113240626cb9a74f3ff1dcde6b2d1112b62cc7c
Author: Wladimir Palant <trev at adblockplus.org>
Date: Fri Jan 25 08:08:32 2013 +0100
Use different metadata files for different platform types to allow different builds from the same repository - e.g. metadata.gecko and metadata.chrome
---
build.py | 52 +++++++++++++++++++++++++++++++++++++++++++++++-----
packager.py | 8 ++++----
packagerChrome.py | 9 ++++++++-
packagerGecko.py | 9 ++++++++-
4 files changed, 67 insertions(+), 11 deletions(-)
diff --git a/build.py b/build.py
index d0937dd..971c121 100644
--- a/build.py
+++ b/build.py
@@ -18,6 +18,8 @@
import os, sys, re, subprocess, buildtools
from getopt import getopt, GetoptError
+knownTypes = ('gecko', 'chrome')
+
class Command(object):
name = property(lambda self: self._name)
shortDescription = property(lambda self: self._shortDescription,
@@ -111,18 +113,19 @@ def usage(scriptName, type, commandName=None):
continue
commandText = ('%s %s' % (command.name, command.params)).ljust(39)
descriptionParts = splitByLength(command.shortDescription, 29)
- descriptions.append(' %s %s %s' % (scriptName, commandText, descriptionParts[0]))
+ descriptions.append(' %s [-t %s] %s %s' % (scriptName, type, commandText, descriptionParts[0]))
for part in descriptionParts[1:]:
- descriptions.append(' %s %s %s' % (' ' * len(scriptName), ' ' * len(commandText), part))
+ descriptions.append(' %s %s %s %s' % (' ' * len(scriptName), ' ' * len(type), ' ' * len(commandText), part))
print '''Usage:
%(descriptions)s
For details on a command run:
- %(scriptName)s <command> --help
+ %(scriptName)s [-t %(type)s] <command> --help
''' % {
'scriptName': scriptName,
+ 'type': type,
'descriptions': '\n'.join(descriptions)
}
else:
@@ -149,7 +152,7 @@ For details on a command run:
options.append(' %s %s %s' % (shortText.ljust(11), longText.ljust(19), descrParts[0]))
for part in descrParts[1:]:
options.append(' %s %s %s' % (' ' * 11, ' ' * 19, part))
- print '''%(scriptName)s %(name)s %(params)s
+ print '''%(scriptName)s [-t %(type)s] %(name)s %(params)s
%(description)s
@@ -157,6 +160,7 @@ Options:
%(options)s
''' % {
'scriptName': scriptName,
+ 'type': type,
'name': command.name,
'params': command.params,
'description': description,
@@ -502,11 +506,49 @@ with addCommand(updatePSL, 'updatepsl') as command:
command.description = 'Downloads Public Suffix List (see http://publicsuffix.org/) and generates lib/publicSuffixList.js from it.'
command.supportedTypes = ('chrome')
-def processArgs(baseDir, args, type='gecko'):
+def getType(baseDir, scriptName, args):
+ # Look for an explicit type parameter (has to be the first parameter)
+ if len(args) >= 2 and args[0] == '-t':
+ type = args[1]
+ del args[1]
+ del args[0]
+ if type not in knownTypes:
+ print '''
+Unknown type %s specified, supported types are: %s
+''' % (type, ', '.join(knownTypes))
+ return None
+ return type
+
+ # Try to guess repository type
+ types = []
+ for t in knownTypes:
+ if os.path.exists(os.path.join(baseDir, 'metadata.%s' % t)):
+ types.append(t)
+
+ if len(types) == 1:
+ return types[0]
+ elif len(types) > 1:
+ print '''
+Ambiguous repository type, please specify -t parameter explicitly, e.g.
+%s -t %s build
+''' % (scriptName, types[0])
+ return None
+ else:
+ print '''
+No metadata file found in this repository, a metadata file like
+metadata.%s is required.
+''' % knownTypes[0]
+ return None
+
+def processArgs(baseDir, args):
global commands
scriptName = os.path.basename(args[0])
args = args[1:]
+ type = getType(baseDir, scriptName, args)
+ if type == None:
+ return
+
if len(args) == 0:
args = ['build']
print '''
diff --git a/packager.py b/packager.py
index dda8205..3f7e447 100644
--- a/packager.py
+++ b/packager.py
@@ -27,11 +27,11 @@ import buildtools
def getDefaultFileName(baseDir, metadata, version, ext):
return os.path.join(baseDir, '%s-%s.%s' % (metadata.get('general', 'basename'), version, ext))
-def getMetadataPath(baseDir):
- return os.path.join(baseDir, 'metadata')
+def getMetadataPath(baseDir, type):
+ return os.path.join(baseDir, 'metadata.%s' % type)
-def readMetadata(baseDir):
- return ChainedConfigParser(getMetadataPath(baseDir))
+def readMetadata(baseDir, type):
+ return ChainedConfigParser(getMetadataPath(baseDir, type))
def getBuildNum(baseDir):
try:
diff --git a/packagerChrome.py b/packagerChrome.py
index 3779b1a..69ec5e8 100644
--- a/packagerChrome.py
+++ b/packagerChrome.py
@@ -18,10 +18,17 @@
import sys, os, re, json, struct
from StringIO import StringIO
-from packager import getDefaultFileName, readMetadata, getBuildVersion, getTemplate, Files
+import packager
+from packager import getDefaultFileName, getBuildVersion, getTemplate, Files
defaultLocale = 'en_US'
+def getMetadataPath(baseDir):
+ return packager.getMetadataPath(baseDir, 'chrome')
+
+def readMetadata(baseDir):
+ return packager.readMetadata(baseDir, 'chrome')
+
def getIgnoredFiles(params):
return set(('store.description',))
diff --git a/packagerGecko.py b/packagerGecko.py
index 22efff7..5fc87fd 100644
--- a/packagerGecko.py
+++ b/packagerGecko.py
@@ -21,7 +21,8 @@ from StringIO import StringIO
import xml.dom.minidom as minidom
import buildtools.localeTools as localeTools
-from packager import getDefaultFileName, readMetadata, getBuildVersion, getTemplate, Files
+import packager
+from packager import getDefaultFileName, getBuildVersion, getTemplate, Files
KNOWN_APPS = {
'conkeror': '{a79fe89b-6662-4ff4-8e88-09950ad4dfde}',
@@ -39,6 +40,12 @@ KNOWN_APPS = {
defaultLocale = 'en-US'
+def getMetadataPath(baseDir):
+ return packager.getMetadataPath(baseDir, 'gecko')
+
+def readMetadata(baseDir):
+ return packager.readMetadata(baseDir, 'gecko')
+
def getChromeDir(baseDir):
return os.path.join(baseDir, 'chrome')
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus.git
More information about the Pkg-mozext-commits
mailing list