mirror of
https://github.com/Nuitka/Nuitka.git
synced 2025-12-14 20:35:49 +01:00
81 lines
2.3 KiB
Python
Executable File
81 lines
2.3 KiB
Python
Executable File
#!/usr/bin/python
|
|
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
|
|
|
|
import os
|
|
import shutil
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
def main():
|
|
# Set the stage.
|
|
os.chdir(os.path.dirname(__file__))
|
|
shutil.rmtree("coverage", ignore_errors=True)
|
|
|
|
print("Fetching coverage files:")
|
|
|
|
subprocess.call(
|
|
["rsync", "-az", "--delete", "%s/" % os.environ["COVERAGE_DIR"], "coverage/"]
|
|
)
|
|
|
|
print("Combining coverage files:")
|
|
os.chdir("coverage")
|
|
|
|
print("Detect coverage file roots:")
|
|
# Now detect where the files were collected from:
|
|
|
|
paths = [os.path.abspath(os.path.join(os.curdir, "..", ".."))]
|
|
|
|
for filename in os.listdir("."):
|
|
if not filename.startswith("meta.coverage"):
|
|
continue
|
|
|
|
values = {}
|
|
exec(open(filename).read(), values)
|
|
if "__builtins__" in values:
|
|
del values["__builtins__"]
|
|
|
|
paths.append(values["NUITKA_SOURCE_DIR"])
|
|
|
|
coverage_path = os.path.abspath(".coveragerc")
|
|
|
|
with open(coverage_path, "w") as coverage_rcfile:
|
|
coverage_rcfile.write("[paths]\n")
|
|
coverage_rcfile.write("source = \n")
|
|
|
|
for path in paths:
|
|
coverage_rcfile.write(" " + path + "\n")
|
|
|
|
subprocess.call(
|
|
[sys.executable, "-m", "coverage", "combine", "--rcfile", coverage_path]
|
|
)
|
|
|
|
assert os.path.exists(coverage_path)
|
|
|
|
subprocess.call(
|
|
[sys.executable, "-m", "coverage", "html", "--rcfile", coverage_path]
|
|
)
|
|
|
|
# Clean up after ourselves again.
|
|
# shutil.rmtree("coverage", ignore_errors = True)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
# integrates with CPython, but also works on its own.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|