# 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/.
"""module for tooltool operations""" import os import sys
from mozharness.base.errors import PythonErrorList from mozharness.base.log import ERROR, FATAL
class TooltoolMixin(object): """Mixin class for handling tooltool manifests.
To use a tooltool server other than the Mozilla server, set
TOOLTOOL_HOST in the environment. """
def tooltool_fetch(self, manifest, output_dir=None, privileged=False, cache=None): """docstring for tooltool_fetch""" if cache isNone:
cache = os.environ.get("TOOLTOOL_CACHE")
for d in (output_dir, cache): if d isnotNoneandnot os.path.exists(d):
self.mkdir_p(d) if self.topsrcdir:
cmd = [
sys.executable, "-u",
os.path.join(self.topsrcdir, "mach"), "artifact", "toolchain", "-v",
] else: # In CI, tooltool.py is expected in external_tools; in local runs, # tooltool.py is expected in mozbuild, but mozbuild might be hard # to find, expecially if topsrcdir could not be found...
locations = [
os.path.join(_external_tools_path, "tooltool.py"),
os.path.join(_mozbuild_action_path, "tooltool.py"),
os.path.join(
os.environ.get("GECKO_PATH", "."),
_mozbuild_action_abspath, "tooltool.py",
),
]
tooltool_path = [p for p in locations if os.path.exists(p)] ifnot tooltool_path: raise Exception("unable to find tooltool client file tooltool.py")
cmd = [
sys.executable, "-u",
tooltool_path[0],
]
def create_tooltool_manifest(self, contents, path=None): """Currently just creates a manifest, given the contents.
We may want a template and individual values in the future? """ if path isNone:
dirs = self.query_abs_dirs()
path = os.path.join(dirs["abs_work_dir"], "tooltool.tt")
self.write_to_file(path, contents, error_level=FATAL) return path
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.