|
5 | 5 | # SPDX-License-Identifier: Apache-2.0
|
6 | 6 | import os
|
7 | 7 | import sys
|
| 8 | +import platform |
8 | 9 | from datetime import datetime
|
9 | 10 | from binaryornot.check import is_binary
|
10 | 11 | import magic
|
@@ -93,12 +94,33 @@ def init(path_to_find_bin, output_file_name, formats, path_to_exclude=[]):
|
93 | 94 |
|
94 | 95 | while len(output_files) < len(output_extensions):
|
95 | 96 | output_files.append(None)
|
| 97 | + to_remove = [] # elements of spdx format on windows that should be removed |
96 | 98 | for i, output_extension in enumerate(output_extensions):
|
97 | 99 | if output_files[i] is None or output_files[i] == "":
|
98 |
| - if output_extension == _json_ext: |
99 |
| - output_files[i] = f"fosslight_opossum_bin_{_start_time}" |
| 100 | + if formats: |
| 101 | + if formats[i].startswith('spdx'): |
| 102 | + if platform.system() != 'Windows': |
| 103 | + output_files[i] = f"fosslight_spdx_bin_{_start_time}" |
| 104 | + else: |
| 105 | + logger.warning('spdx format is not supported on Windows. Please remove spdx from format.') |
| 106 | + to_remove.append(i) |
| 107 | + else: |
| 108 | + if output_extension == _json_ext: |
| 109 | + output_files[i] = f"fosslight_opossum_bin_{_start_time}" |
| 110 | + else: |
| 111 | + output_files[i] = f"fosslight_report_bin_{_start_time}" |
100 | 112 | else:
|
101 |
| - output_files[i] = f"fosslight_report_bin_{_start_time}" |
| 113 | + if output_extension == _json_ext: |
| 114 | + output_files[i] = f"fosslight_opossum_bin_{_start_time}" |
| 115 | + else: |
| 116 | + output_files[i] = f"fosslight_report_bin_{_start_time}" |
| 117 | + for index in sorted(to_remove, reverse=True): |
| 118 | + # remove elements of spdx format on windows |
| 119 | + del output_files[index] |
| 120 | + del output_extensions[index] |
| 121 | + del formats[index] |
| 122 | + if len(output_extensions) < 1: |
| 123 | + sys.exit(0) |
102 | 124 |
|
103 | 125 | combined_paths_and_files = [os.path.join(output_path, file) for file in output_files]
|
104 | 126 | else:
|
|
0 commit comments