diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /build/moz.configure/keyfiles.configure | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'build/moz.configure/keyfiles.configure')
-rw-r--r-- | build/moz.configure/keyfiles.configure | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/build/moz.configure/keyfiles.configure b/build/moz.configure/keyfiles.configure new file mode 100644 index 000000000..5a71fd4b2 --- /dev/null +++ b/build/moz.configure/keyfiles.configure @@ -0,0 +1,68 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + + +@template +def keyfile(desc, help=None, callback=lambda x: x): + help = help or ('Use the secret key contained in the given keyfile ' + 'for %s requests' % desc) + name = desc.lower().replace(' ', '-') + no_key = callback('no-%s-key' % name) + + option('--with-%s-keyfile' % name, nargs=1, help=help) + + @depends('--with-%s-keyfile' % name) + @checking('for the %s key' % desc, lambda x: x and x is not no_key) + @imports(_from='__builtin__', _import='open') + @imports(_from='__builtin__', _import='IOError') + def keyfile(value): + if value: + try: + with open(value[0]) as fh: + result = fh.read().strip() + if result: + return callback(result) + raise FatalCheckError("'%s' is empty." % value[0]) + except IOError as e: + raise FatalCheckError("'%s': %s." % (value[0], e.strerror)) + return no_key + + return keyfile + + +@template +def simple_keyfile(desc): + value = keyfile(desc) + set_config('MOZ_%s_KEY' % desc.upper().replace(' ', '_'), value) + # Only really required for MOZ_ADJUST_SDK_KEY currently still used in + # old-configure. + add_old_configure_assignment('MOZ_%s_KEY' % desc.upper().replace(' ', '_'), + value) + + +@template +def id_and_secret_keyfile(desc): + def id_and_secret(value): + if value.startswith('no-') and value.endswith('-key'): + id = value[:-3] + 'clientid' + secret = value + elif ' ' in value: + id, secret = value.split(' ', 1) + else: + raise FatalCheckError('%s key file has an invalid format.' % desc) + return namespace( + id=id, + secret=secret, + ) + + content = keyfile(desc, help='Use the client id and secret key contained ' + 'in the given keyfile for %s requests' % desc, + callback=id_and_secret) + + + name = desc.upper().replace(' ', '_') + set_config('MOZ_%s_CLIENTID' % name, delayed_getattr(content, 'id')) + set_config('MOZ_%s_KEY' % name, delayed_getattr(content, 'secret')) |