diff options
| author | Devtools Arcadia <[email protected]> | 2022-02-07 18:08:42 +0300 | 
|---|---|---|
| committer | Devtools Arcadia <[email protected]> | 2022-02-07 18:08:42 +0300 | 
| commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
| tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /build/scripts/extract_jacoco_report.py | |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'build/scripts/extract_jacoco_report.py')
| -rw-r--r-- | build/scripts/extract_jacoco_report.py | 29 | 
1 files changed, 29 insertions, 0 deletions
diff --git a/build/scripts/extract_jacoco_report.py b/build/scripts/extract_jacoco_report.py new file mode 100644 index 00000000000..02e4ba9f13a --- /dev/null +++ b/build/scripts/extract_jacoco_report.py @@ -0,0 +1,29 @@ +import argparse +import os +import re +import tarfile + + +if __name__ == '__main__': +    parser = argparse.ArgumentParser() + +    parser.add_argument('--archive', action='store') +    parser.add_argument('--source-re', action='store') +    parser.add_argument('--destination', action='store') + +    args = parser.parse_args() + +    with tarfile.open(args.archive) as tf: +        open(args.destination, 'wb').close() +        extract_list = [] +        matcher = re.compile(args.source_re) +        temp_dir = os.path.join(os.path.dirname(args.destination), 'temp_profiles') +        if not os.path.exists(temp_dir): +            os.makedirs(temp_dir) +        for f in [i for i in tf if matcher.match(i.name)]: +            tf.extract(f, path=temp_dir) +        for directory, _, srcs in os.walk(temp_dir): +            for f in srcs: +                with open(args.destination, 'ab') as dst: +                    with open(os.path.join(temp_dir, directory, f), 'rb') as src: +                        dst.write(src.read())  | 
