ScriptCollection 3.4.3__py3-none-any.whl → 3.4.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ScriptCollection/Executables.py +7 -14
- ScriptCollection/ScriptCollectionCore.py +14 -43
- ScriptCollection/TasksForCommonProjectStructure.py +42 -24
- {ScriptCollection-3.4.3.dist-info → ScriptCollection-3.4.6.dist-info}/METADATA +2 -2
- ScriptCollection-3.4.6.dist-info/RECORD +14 -0
- {ScriptCollection-3.4.3.dist-info → ScriptCollection-3.4.6.dist-info}/WHEEL +1 -1
- ScriptCollection-3.4.3.dist-info/RECORD +0 -14
- {ScriptCollection-3.4.3.dist-info → ScriptCollection-3.4.6.dist-info}/entry_points.txt +0 -0
- {ScriptCollection-3.4.3.dist-info → ScriptCollection-3.4.6.dist-info}/top_level.txt +0 -0
ScriptCollection/Executables.py
CHANGED
|
@@ -72,17 +72,6 @@ def CalculateBitcoinBlockHash() -> int:
|
|
|
72
72
|
return 0
|
|
73
73
|
|
|
74
74
|
|
|
75
|
-
def UpdateNugetpackagesInCsharpProject() -> int:
|
|
76
|
-
|
|
77
|
-
parser = argparse.ArgumentParser(description="""TODO""")
|
|
78
|
-
parser.add_argument('csprojfile')
|
|
79
|
-
args = parser.parse_args()
|
|
80
|
-
if ScriptCollectionCore().SCUpdateNugetpackagesInCsharpProject(args.csprojfile):
|
|
81
|
-
return 1
|
|
82
|
-
else:
|
|
83
|
-
return 0
|
|
84
|
-
|
|
85
|
-
|
|
86
75
|
def Show2FAAsQRCode():
|
|
87
76
|
|
|
88
77
|
parser = argparse.ArgumentParser(description="""Always when you use 2-factor-authentication you have the problem:
|
|
@@ -319,6 +308,7 @@ def GenerateCertificateAuthority() -> int:
|
|
|
319
308
|
|
|
320
309
|
def GenerateCertificate() -> int:
|
|
321
310
|
parser = argparse.ArgumentParser()
|
|
311
|
+
parser.add_argument('--filename', required=True)
|
|
322
312
|
parser.add_argument('--domain', required=True)
|
|
323
313
|
parser.add_argument('--subj_c', required=True)
|
|
324
314
|
parser.add_argument('--subj_st', required=True)
|
|
@@ -328,12 +318,14 @@ def GenerateCertificate() -> int:
|
|
|
328
318
|
parser.add_argument('--days_until_expire', required=False, default=None, type=int)
|
|
329
319
|
parser.add_argument('--password', required=False, default=None)
|
|
330
320
|
args = parser.parse_args()
|
|
331
|
-
ScriptCollectionCore().generate_certificate(os.getcwd(), args.domain, args.
|
|
321
|
+
ScriptCollectionCore().generate_certificate(os.getcwd(), args.domain, args.filename, args.subj_c, args.subj_st,
|
|
322
|
+
args.subj_l, args.subj_o, args.subj_ou, args.days_until_expire, args.password)
|
|
332
323
|
return 0
|
|
333
324
|
|
|
334
325
|
|
|
335
326
|
def GenerateCertificateSignRequest() -> int:
|
|
336
327
|
parser = argparse.ArgumentParser()
|
|
328
|
+
parser.add_argument('--filename', required=True)
|
|
337
329
|
parser.add_argument('--domain', required=True)
|
|
338
330
|
parser.add_argument('--subj_c', required=True)
|
|
339
331
|
parser.add_argument('--subj_st', required=True)
|
|
@@ -341,7 +333,7 @@ def GenerateCertificateSignRequest() -> int:
|
|
|
341
333
|
parser.add_argument('--subj_o', required=True)
|
|
342
334
|
parser.add_argument('--subj_ou', required=True)
|
|
343
335
|
args = parser.parse_args()
|
|
344
|
-
ScriptCollectionCore().generate_certificate_sign_request(os.getcwd(), args.domain, args.subj_c, args.subj_st, args.subj_l, args.subj_o, args.sub_ou)
|
|
336
|
+
ScriptCollectionCore().generate_certificate_sign_request(os.getcwd(), args.domain, args.filename, args.subj_c, args.subj_st, args.subj_l, args.subj_o, args.sub_ou)
|
|
345
337
|
return 0
|
|
346
338
|
|
|
347
339
|
|
|
@@ -350,7 +342,8 @@ def SignCertificate() -> int:
|
|
|
350
342
|
parser.add_argument('--cafolder', required=True)
|
|
351
343
|
parser.add_argument('--caname', required=True)
|
|
352
344
|
parser.add_argument('--targetcertificate', required=True)
|
|
345
|
+
parser.add_argument('--filename', required=True)
|
|
353
346
|
parser.add_argument('--days_until_expire', required=False, default=None, type=int)
|
|
354
347
|
args = parser.parse_args()
|
|
355
|
-
ScriptCollectionCore().sign_certificate(os.getcwd(), args.cafolder, args.caname, args.targetcertificate, args.args.days_until_expire)
|
|
348
|
+
ScriptCollectionCore().sign_certificate(os.getcwd(), args.cafolder, args.caname, args.targetcertificate, args.filename, args.args.days_until_expire)
|
|
356
349
|
return 0
|
|
@@ -29,7 +29,7 @@ from .ProgramRunnerPopen import ProgramRunnerPopen
|
|
|
29
29
|
from .ProgramRunnerEpew import ProgramRunnerEpew, CustomEpewArgument
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
version = "3.4.
|
|
32
|
+
version = "3.4.6"
|
|
33
33
|
__version__ = version
|
|
34
34
|
|
|
35
35
|
|
|
@@ -879,16 +879,6 @@ class ScriptCollectionCore:
|
|
|
879
879
|
self.__print_qr_code_by_csv_line(line[0], line[1], line[2], line[3], line[4])
|
|
880
880
|
GeneralUtilities.write_message_to_stdout(separator_line)
|
|
881
881
|
|
|
882
|
-
@GeneralUtilities.check_arguments
|
|
883
|
-
def SCUpdateNugetpackagesInCsharpProject(self, csprojfile: str) -> int:
|
|
884
|
-
outdated_packages = self.get_nuget_packages_of_csproj_file(csprojfile, True)
|
|
885
|
-
GeneralUtilities.write_message_to_stdout("The following packages will be updated:")
|
|
886
|
-
for outdated_package in outdated_packages:
|
|
887
|
-
GeneralUtilities.write_message_to_stdout(outdated_package)
|
|
888
|
-
self.update_nuget_package(csprojfile, outdated_package)
|
|
889
|
-
GeneralUtilities.write_message_to_stdout(f"{len(outdated_packages)} package(s) were updated")
|
|
890
|
-
return len(outdated_packages) > 0
|
|
891
|
-
|
|
892
882
|
@GeneralUtilities.check_arguments
|
|
893
883
|
def SCUploadFileToFileHost(self, file: str, host: str) -> int:
|
|
894
884
|
try:
|
|
@@ -1118,25 +1108,6 @@ class ScriptCollectionCore:
|
|
|
1118
1108
|
GeneralUtilities.ensure_file_does_not_exist(coveragefile)
|
|
1119
1109
|
os.rename(os.path.join(repository_folder, "coverage.xml"), coveragefile)
|
|
1120
1110
|
|
|
1121
|
-
@GeneralUtilities.check_arguments
|
|
1122
|
-
def get_nuget_packages_of_csproj_file(self, csproj_file: str, only_outdated_packages: bool) -> bool:
|
|
1123
|
-
self.run_program("dotnet", f'restore --disable-parallel --force --force-evaluate "{csproj_file}"')
|
|
1124
|
-
if only_outdated_packages:
|
|
1125
|
-
only_outdated_packages_argument = " --outdated"
|
|
1126
|
-
else:
|
|
1127
|
-
only_outdated_packages_argument = ""
|
|
1128
|
-
stdout = self.run_program("dotnet", f'list "{csproj_file}" package{only_outdated_packages_argument}')[1]
|
|
1129
|
-
result = []
|
|
1130
|
-
for line in stdout.splitlines():
|
|
1131
|
-
trimmed_line = line.replace("\t", "").strip()
|
|
1132
|
-
if trimmed_line.startswith(">"):
|
|
1133
|
-
result.append(trimmed_line[2:].split(" ")[0])
|
|
1134
|
-
return result
|
|
1135
|
-
|
|
1136
|
-
@GeneralUtilities.check_arguments
|
|
1137
|
-
def update_nuget_package(self, csproj_file: str, name: str) -> None:
|
|
1138
|
-
self.run_program("dotnet", f'add "{csproj_file}" package {name}')
|
|
1139
|
-
|
|
1140
1111
|
@GeneralUtilities.check_arguments
|
|
1141
1112
|
def get_file_permission(self, file: str) -> str:
|
|
1142
1113
|
"""This function returns an usual octet-triple, for example "0700"."""
|
|
@@ -1546,19 +1517,19 @@ class ScriptCollectionCore:
|
|
|
1546
1517
|
f'-keyout {name}.key -out {name}.crt', folder)
|
|
1547
1518
|
|
|
1548
1519
|
@GeneralUtilities.check_arguments
|
|
1549
|
-
def generate_certificate(self, folder: str,
|
|
1520
|
+
def generate_certificate(self, folder: str, domain: str, filename: str, subj_c: str, subj_st: str, subj_l: str, subj_o: str, subj_ou: str,
|
|
1550
1521
|
days_until_expire: int = None, password: str = None) -> None:
|
|
1551
1522
|
if days_until_expire is None:
|
|
1552
1523
|
days_until_expire = 397
|
|
1553
1524
|
if password is None:
|
|
1554
1525
|
password = GeneralUtilities.generate_password()
|
|
1555
1526
|
rsa_key_length = 4096
|
|
1556
|
-
self.run_program("openssl", f'genrsa -out {
|
|
1527
|
+
self.run_program("openssl", f'genrsa -out {filename}.key {rsa_key_length}', folder)
|
|
1557
1528
|
self.run_program("openssl", f'req -new -subj /C={subj_c}/ST={subj_st}/L={subj_l}/O={subj_o}/CN={domain}/OU={subj_ou} -x509 ' +
|
|
1558
|
-
f'-key {
|
|
1559
|
-
self.run_program("openssl", f'pkcs12 -export -out {
|
|
1560
|
-
GeneralUtilities.write_text_to_file(os.path.join(folder, f"{
|
|
1561
|
-
GeneralUtilities.write_text_to_file(os.path.join(folder, f"{
|
|
1529
|
+
f'-key {filename}.key -out {filename}.unsigned.crt -days {days_until_expire}', folder)
|
|
1530
|
+
self.run_program("openssl", f'pkcs12 -export -out {filename}.selfsigned.pfx -password pass:{password} -inkey {filename}.key -in {filename}.unsigned.crt', folder)
|
|
1531
|
+
GeneralUtilities.write_text_to_file(os.path.join(folder, f"{filename}.password"), password)
|
|
1532
|
+
GeneralUtilities.write_text_to_file(os.path.join(folder, f"{filename}.san.conf"), f"""[ req ]
|
|
1562
1533
|
default_bits = {rsa_key_length}
|
|
1563
1534
|
distinguished_name = req_distinguished_name
|
|
1564
1535
|
req_extensions = v3_req
|
|
@@ -1582,20 +1553,20 @@ DNS = {domain}
|
|
|
1582
1553
|
""")
|
|
1583
1554
|
|
|
1584
1555
|
@GeneralUtilities.check_arguments
|
|
1585
|
-
def generate_certificate_sign_request(self, folder: str, domain: str, subj_c: str, subj_st: str, subj_l: str, subj_o: str, subj_ou: str) -> None:
|
|
1556
|
+
def generate_certificate_sign_request(self, folder: str, domain: str, filename: str, subj_c: str, subj_st: str, subj_l: str, subj_o: str, subj_ou: str) -> None:
|
|
1586
1557
|
self.run_program("openssl", f'req -new -subj /C={subj_c}/ST={subj_st}/L={subj_l}/O={subj_o}/CN={domain}/OU={subj_ou} ' +
|
|
1587
|
-
f'-key {
|
|
1558
|
+
f'-key {filename}.key -out {filename}.csr -config {filename}.san.conf', folder)
|
|
1588
1559
|
|
|
1589
1560
|
@GeneralUtilities.check_arguments
|
|
1590
|
-
def sign_certificate(self, folder: str, ca_folder: str, ca_name: str, domain: str, days_until_expire: int = None) -> None:
|
|
1561
|
+
def sign_certificate(self, folder: str, ca_folder: str, ca_name: str, domain: str, filename: str, days_until_expire: int = None) -> None:
|
|
1591
1562
|
if days_until_expire is None:
|
|
1592
1563
|
days_until_expire = 397
|
|
1593
1564
|
ca = os.path.join(ca_folder, ca_name)
|
|
1594
|
-
password_file = os.path.join(folder, f"{
|
|
1565
|
+
password_file = os.path.join(folder, f"{filename}.password")
|
|
1595
1566
|
password = GeneralUtilities.read_text_from_file(password_file)
|
|
1596
|
-
self.run_program("openssl", f'x509 -req -in {
|
|
1597
|
-
f'-out {
|
|
1598
|
-
self.run_program("openssl", f'pkcs12 -export -out {
|
|
1567
|
+
self.run_program("openssl", f'x509 -req -in {filename}.csr -CA {ca}.crt -CAkey {ca}.key -CAcreateserial -CAserial {ca}.srl ' +
|
|
1568
|
+
f'-out {filename}.crt -days {days_until_expire} -sha256 -extensions v3_req -extfile {filename}.san.conf', folder)
|
|
1569
|
+
self.run_program("openssl", f'pkcs12 -export -out {filename}.pfx -inkey {filename}.key -in {filename}.crt -password pass:{password}', folder)
|
|
1599
1570
|
|
|
1600
1571
|
@GeneralUtilities.check_arguments
|
|
1601
1572
|
def update_dependencies_of_python_in_requirementstxt_file(self, file: str, verbosity: int):
|
|
@@ -272,7 +272,7 @@ class TasksForCommonProjectStructure:
|
|
|
272
272
|
if gpg_identity is None:
|
|
273
273
|
gpg_identity_argument = ""
|
|
274
274
|
else:
|
|
275
|
-
|
|
275
|
+
gpg_identity_argument = "" # f" --sign --identity {gpg_identity}"
|
|
276
276
|
# disabled due to https://blog.pypi.org/posts/2023-05-23-removing-pgp/
|
|
277
277
|
|
|
278
278
|
if verbosity > 2:
|
|
@@ -763,8 +763,7 @@ class TasksForCommonProjectStructure:
|
|
|
763
763
|
|
|
764
764
|
@GeneralUtilities.check_arguments
|
|
765
765
|
def standardized_tasks_run_testcases_for_dotnet_project(self, runtestcases_file: str, targetenvironmenttype: str, verbosity: int, generate_badges: bool,
|
|
766
|
-
|
|
767
|
-
dotnet_build_configuration: str = target_environmenttype_mapping[targetenvironmenttype]
|
|
766
|
+
commandline_arguments: list[str]):
|
|
768
767
|
codeunit_name: str = os.path.basename(str(Path(os.path.dirname(runtestcases_file)).parent.parent.absolute()))
|
|
769
768
|
verbosity = TasksForCommonProjectStructure.get_verbosity_from_commandline_arguments(commandline_arguments, verbosity)
|
|
770
769
|
repository_folder: str = str(Path(os.path.dirname(runtestcases_file)).parent.parent.parent.absolute())
|
|
@@ -774,7 +773,7 @@ class TasksForCommonProjectStructure:
|
|
|
774
773
|
runsettings_file = self.dotnet_runsettings_file
|
|
775
774
|
if os.path.isfile(os.path.join(working_directory, runsettings_file)):
|
|
776
775
|
runsettings_argument = f"--settings {runsettings_file} "
|
|
777
|
-
arg = f"collect dotnet test {runsettings_argument}-
|
|
776
|
+
arg = f"collect dotnet test {runsettings_argument} --no-build --output-format cobertura --output Other\\Artifacts\\TestCoverage\\Testcoverage"
|
|
778
777
|
self.__sc.run_program("dotnet-coverage", arg, working_directory, verbosity=verbosity)
|
|
779
778
|
os.rename(os.path.join(coverage_file_folder, "Testcoverage.cobertura.xml"), os.path.join(coverage_file_folder, "TestCoverage.xml"))
|
|
780
779
|
self.run_testcases_common_post_task(repository_folder, codeunit_name, verbosity, generate_badges, targetenvironmenttype, commandline_arguments)
|
|
@@ -1009,14 +1008,18 @@ class TasksForCommonProjectStructure:
|
|
|
1009
1008
|
raise ValueError(f"Repository '{repository_folder}' has uncommitted changes.")
|
|
1010
1009
|
|
|
1011
1010
|
@GeneralUtilities.check_arguments
|
|
1012
|
-
def
|
|
1013
|
-
resource_name: str = "DevelopmentCertificate"):
|
|
1014
|
-
resources_folder = os.path.join(codeunit_folder, "Other", "Resources")
|
|
1015
|
-
certificate_folder = os.path.join(resources_folder, resource_name)
|
|
1016
|
-
dev_ca_name = "DevelopmentCertificateAuthority"
|
|
1017
|
-
ca_folder = os.path.join(resources_folder, dev_ca_name)
|
|
1011
|
+
def generate_certificate_for_development_purposes(self, codeunit_folder: str, domain: str = None):
|
|
1018
1012
|
codeunit_name = os.path.basename(codeunit_folder)
|
|
1019
|
-
domain
|
|
1013
|
+
if domain is None:
|
|
1014
|
+
domain = f"{codeunit_name}.test.local"
|
|
1015
|
+
domain = domain.lower()
|
|
1016
|
+
resources_folder: str = os.path.join(codeunit_folder, "Other", "Resources")
|
|
1017
|
+
resource_name: str = "DevelopmentCertificate"
|
|
1018
|
+
certificate_folder: str = os.path.join(resources_folder, resource_name)
|
|
1019
|
+
resource_content_filename: str = codeunit_name+resource_name
|
|
1020
|
+
ca_resource_name: str = f"{resource_name}Authority"
|
|
1021
|
+
dev_ca_name = codeunit_name+ca_resource_name
|
|
1022
|
+
ca_folder = os.path.join(resources_folder, ca_resource_name)
|
|
1020
1023
|
certificate_file = os.path.join(certificate_folder, f"{domain}.crt")
|
|
1021
1024
|
unsignedcertificate_file = os.path.join(certificate_folder, f"{domain}.unsigned.crt")
|
|
1022
1025
|
certificate_exists = os.path.exists(certificate_file)
|
|
@@ -1032,9 +1035,9 @@ class TasksForCommonProjectStructure:
|
|
|
1032
1035
|
GeneralUtilities.ensure_directory_exists(ca_folder)
|
|
1033
1036
|
GeneralUtilities.write_message_to_stdout("Generate TLS-certificate for development-purposes.")
|
|
1034
1037
|
self.__sc.generate_certificate_authority(ca_folder, dev_ca_name, "DE", "SubjST", "SubjL", "SubjO", "SubjOU")
|
|
1035
|
-
self.__sc.generate_certificate(certificate_folder, domain, "DE", "SubjST", "SubjL", "SubjO", "SubjOU")
|
|
1036
|
-
self.__sc.generate_certificate_sign_request(certificate_folder, domain, "DE", "SubjST", "SubjL", "SubjO", "SubjOU")
|
|
1037
|
-
self.__sc.sign_certificate(certificate_folder, ca_folder, dev_ca_name, domain)
|
|
1038
|
+
self.__sc.generate_certificate(certificate_folder, domain, resource_content_filename, "DE", "SubjST", "SubjL", "SubjO", "SubjOU")
|
|
1039
|
+
self.__sc.generate_certificate_sign_request(certificate_folder, domain, resource_content_filename, "DE", "SubjST", "SubjL", "SubjO", "SubjOU")
|
|
1040
|
+
self.__sc.sign_certificate(certificate_folder, ca_folder, dev_ca_name, domain, resource_content_filename)
|
|
1038
1041
|
GeneralUtilities.ensure_file_does_not_exist(unsignedcertificate_file)
|
|
1039
1042
|
|
|
1040
1043
|
@GeneralUtilities.check_arguments
|
|
@@ -1520,10 +1523,12 @@ class TasksForCommonProjectStructure:
|
|
|
1520
1523
|
raise ValueError("Too many results found.")
|
|
1521
1524
|
|
|
1522
1525
|
@GeneralUtilities.check_arguments
|
|
1523
|
-
def set_constants_for_certificate_public_information(self, codeunit_folder: str, source_constant_name: str = "DevelopmentCertificate"):
|
|
1526
|
+
def set_constants_for_certificate_public_information(self, codeunit_folder: str, source_constant_name: str = "DevelopmentCertificate", domain: str = None):
|
|
1524
1527
|
"""Expects a certificate-resource and generates a constant for its public information"""
|
|
1525
1528
|
codeunit_name = os.path.basename(codeunit_folder)
|
|
1526
|
-
domain
|
|
1529
|
+
if domain is None:
|
|
1530
|
+
domain = f"{codeunit_name}.test.local"
|
|
1531
|
+
domain = domain.lower()
|
|
1527
1532
|
certificate_file = os.path.join(codeunit_folder, "Other", "Resources", source_constant_name, f"{domain}.crt")
|
|
1528
1533
|
with open(certificate_file, encoding="utf-8") as text_wrapper:
|
|
1529
1534
|
certificate = crypto.load_certificate(crypto.FILETYPE_PEM, text_wrapper.read())
|
|
@@ -1533,9 +1538,10 @@ class TasksForCommonProjectStructure:
|
|
|
1533
1538
|
@GeneralUtilities.check_arguments
|
|
1534
1539
|
def set_constants_for_certificate_private_information(self, codeunit_folder: str, certificate_resource_name: str = "DevelopmentCertificate", domain: str = None):
|
|
1535
1540
|
"""Expects a certificate-resource and generates a constant for its sensitive information in hex-format"""
|
|
1541
|
+
codeunit_name = os.path.basename(codeunit_folder)
|
|
1536
1542
|
if domain is None:
|
|
1537
|
-
|
|
1538
|
-
|
|
1543
|
+
domain = f"{codeunit_name}.test.local"
|
|
1544
|
+
domain = domain.lower()
|
|
1539
1545
|
self.generate_constant_from_resource_by_filename(codeunit_folder, certificate_resource_name, f"{domain}.test.local.pfx", "PFX")
|
|
1540
1546
|
self.generate_constant_from_resource_by_filename(codeunit_folder, certificate_resource_name, f"{domain}.test.local.password", "Password")
|
|
1541
1547
|
|
|
@@ -1635,6 +1641,7 @@ class TasksForCommonProjectStructure:
|
|
|
1635
1641
|
|
|
1636
1642
|
@GeneralUtilities.check_arguments
|
|
1637
1643
|
def update_dependencies_of_typical_python_codeunit(self, update_script_file: str, verbosity: int, cmd_args: list[str]):
|
|
1644
|
+
# TODO generalize and add option to ignore certain dependencies
|
|
1638
1645
|
verbosity = self.get_verbosity_from_commandline_arguments(cmd_args, verbosity)
|
|
1639
1646
|
codeunit_folder = GeneralUtilities.resolve_relative_path("..", os.path.dirname(update_script_file))
|
|
1640
1647
|
self.__sc.update_dependencies_of_python_in_setupcfg_file(os.path.join(codeunit_folder, "setup.cfg"), verbosity)
|
|
@@ -1644,6 +1651,7 @@ class TasksForCommonProjectStructure:
|
|
|
1644
1651
|
|
|
1645
1652
|
@GeneralUtilities.check_arguments
|
|
1646
1653
|
def update_dependencies_of_typical_dotnet_codeunit(self, update_script_file: str, verbosity: int, cmd_args: list[str]):
|
|
1654
|
+
# TODO generalize and add option to ignore certain dependencies
|
|
1647
1655
|
verbosity = self.get_verbosity_from_commandline_arguments(cmd_args, verbosity)
|
|
1648
1656
|
codeunit_folder = GeneralUtilities.resolve_relative_path("..", os.path.dirname(update_script_file))
|
|
1649
1657
|
codeunit_name = os.path.basename(codeunit_folder)
|
|
@@ -1654,7 +1662,7 @@ class TasksForCommonProjectStructure:
|
|
|
1654
1662
|
|
|
1655
1663
|
@GeneralUtilities.check_arguments
|
|
1656
1664
|
def update_dependencies_of_typical_node_codeunit(self, update_script_file: str, verbosity: int, cmd_args: list[str]):
|
|
1657
|
-
pass # TODO
|
|
1665
|
+
pass # TODO generalize and add option to ignore certain dependencies
|
|
1658
1666
|
|
|
1659
1667
|
@GeneralUtilities.check_arguments
|
|
1660
1668
|
def standardized_tasks_update_version_in_docker_examples(self, file, codeunit_version):
|
|
@@ -1963,6 +1971,7 @@ class TasksForCommonProjectStructure:
|
|
|
1963
1971
|
additional_arguments_r: str = ""
|
|
1964
1972
|
additional_arguments_l: str = ""
|
|
1965
1973
|
additional_arguments_g: str = ""
|
|
1974
|
+
additional_arguments_f: str = ""
|
|
1966
1975
|
general_argument = f' --overwrite_verbosity={str(verbosity)} --overwrite_targetenvironmenttype={target_environmenttype}'
|
|
1967
1976
|
|
|
1968
1977
|
c_additionalargumentsfile_argument = ""
|
|
@@ -1982,15 +1991,17 @@ class TasksForCommonProjectStructure:
|
|
|
1982
1991
|
config.read(additional_arguments_file)
|
|
1983
1992
|
section_name = f"{codeunit_name}_Configuration"
|
|
1984
1993
|
if config.has_option(section_name, "ArgumentsForCommonTasks"):
|
|
1985
|
-
additional_arguments_c = " "+config.get(section_name, "ArgumentsForCommonTasks")
|
|
1994
|
+
additional_arguments_c = " " + config.get(section_name, "ArgumentsForCommonTasks")
|
|
1986
1995
|
if config.has_option(section_name, "ArgumentsForBuild"):
|
|
1987
|
-
additional_arguments_b = " "+config.get(section_name, "ArgumentsForBuild")
|
|
1996
|
+
additional_arguments_b = " " + config.get(section_name, "ArgumentsForBuild")
|
|
1988
1997
|
if config.has_option(section_name, "ArgumentsForRunTestcases"):
|
|
1989
|
-
additional_arguments_r = " "+config.get(section_name, "ArgumentsForRunTestcases")
|
|
1998
|
+
additional_arguments_r = " " + config.get(section_name, "ArgumentsForRunTestcases")
|
|
1990
1999
|
if config.has_option(section_name, "ArgumentsForLinting"):
|
|
1991
|
-
additional_arguments_l = " "+config.get(section_name, "ArgumentsForLinting")
|
|
2000
|
+
additional_arguments_l = " " + config.get(section_name, "ArgumentsForLinting")
|
|
1992
2001
|
if config.has_option(section_name, "ArgumentsForGenerateReference"):
|
|
1993
|
-
additional_arguments_g = " "+config.get(section_name, "ArgumentsForGenerateReference")
|
|
2002
|
+
additional_arguments_g = " " + config.get(section_name, "ArgumentsForGenerateReference")
|
|
2003
|
+
if config.has_option(section_name, "ArgumentsForOnFinish"):
|
|
2004
|
+
additional_arguments_f = " " + config.get(section_name, "ArgumentsForOnFinish")
|
|
1994
2005
|
c_additionalargumentsfile_argument = f' --overwrite_additionalargumentsfile="{additional_arguments_file}"'
|
|
1995
2006
|
|
|
1996
2007
|
GeneralUtilities.write_message_to_stdout('Run "CommonTasks.py"...')
|
|
@@ -2030,6 +2041,13 @@ class TasksForCommonProjectStructure:
|
|
|
2030
2041
|
raise ValueError(f"GenerateReference.py resulted in exitcode {execution_result[0]}. StdOut: '{execution_result[1]}' StdOut: '{execution_result[2]}'")
|
|
2031
2042
|
self.verify_artifact_exists(codeunit_folder, dict[str, bool]({"Reference": True}))
|
|
2032
2043
|
|
|
2044
|
+
if os.path.isfile(os.path.join(other_folder, "OnBuildingFinished.py")):
|
|
2045
|
+
GeneralUtilities.write_message_to_stdout('Run "OnBuildingFinished.py"...')
|
|
2046
|
+
execution_result = self.__sc.run_program(
|
|
2047
|
+
"python", f"OnBuildingFinished.py{additional_arguments_f}{general_argument}", other_folder, verbosity=verbosity_for_executed_programs, throw_exception_if_exitcode_is_not_zero=False)
|
|
2048
|
+
if execution_result[0] != 0:
|
|
2049
|
+
raise ValueError(f"OnBuildingFinished.py resulted in exitcode {execution_result[0]}. StdOut: '{execution_result[1]}' StdOut: '{execution_result[2]}'")
|
|
2050
|
+
|
|
2033
2051
|
artifactsinformation_file = os.path.join(artifacts_folder, f"{codeunit_name}.artifactsinformation.xml")
|
|
2034
2052
|
codeunit_version = self.get_version_of_codeunit(codeunit_file)
|
|
2035
2053
|
GeneralUtilities.ensure_file_exists(artifactsinformation_file)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ScriptCollection
|
|
3
|
-
Version: 3.4.
|
|
3
|
+
Version: 3.4.6
|
|
4
4
|
Summary: The ScriptCollection is the place for reusable scripts.
|
|
5
5
|
Home-page: https://github.com/anionDev/ScriptCollection
|
|
6
6
|
Author: Marius Göcke
|
|
@@ -23,7 +23,7 @@ Classifier: Topic :: Utilities
|
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
Requires-Dist: coverage (>=7.2.7)
|
|
26
|
-
Requires-Dist: cyclonedx-bom (>=3.11.
|
|
26
|
+
Requires-Dist: cyclonedx-bom (>=3.11.2)
|
|
27
27
|
Requires-Dist: defusedxml (>=0.7.1)
|
|
28
28
|
Requires-Dist: keyboard (>=0.13.5)
|
|
29
29
|
Requires-Dist: lxml (>=4.9.3)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
ScriptCollection/Executables.py,sha256=srooVN3-X76sJKG99BxKBV4kuF_GFNq-SuV-zTmNJGw,19002
|
|
2
|
+
ScriptCollection/GeneralUtilities.py,sha256=vZDiW5lWJRCrIZVs1bTCZ-O5slQnM5dv4GcJ-RTMowY,34378
|
|
3
|
+
ScriptCollection/ProgramRunnerBase.py,sha256=2kyOuoM3oFjBfLc9Q5t5RTz7Ya2CjUxFtB1rBBDmnjU,1937
|
|
4
|
+
ScriptCollection/ProgramRunnerEpew.py,sha256=nIzY4dG6W-xEpkeoTbozwNZtFSIo-bU_W6t6u1AZKtE,6275
|
|
5
|
+
ScriptCollection/ProgramRunnerPopen.py,sha256=HOs1QVnXiQtwXy1_xvH79bWBdd0i-2tUyyLloQBvMto,3023
|
|
6
|
+
ScriptCollection/ScriptCollectionCore.py,sha256=hOkgV6v1XGqiX9TU7_Oqe-UJlYFmFmEwxKwaIybI2JI,94554
|
|
7
|
+
ScriptCollection/TasksForCommonProjectStructure.py,sha256=3ZXzRX7YAzLS8NurwSG0WLfnByVEbmmzx-s8zBME4vs,145487
|
|
8
|
+
ScriptCollection/UpdateCertificates.py,sha256=Go-JJK-YTi7aBB1phlLxypa8GHkmFHBEPB0_TT9G-bw,7918
|
|
9
|
+
ScriptCollection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
ScriptCollection-3.4.6.dist-info/METADATA,sha256=a0a1ZlEkJK2t1C0-CV_bSxnINH0Hjw-AXuakJ6UPfSY,7650
|
|
11
|
+
ScriptCollection-3.4.6.dist-info/WHEEL,sha256=AtBG6SXL3KF_v0NxLf0ehyVOh0cold-JbJYXNGorC6Q,92
|
|
12
|
+
ScriptCollection-3.4.6.dist-info/entry_points.txt,sha256=dJKdWcH41owxlKx_khj4P7DItr9lhxWP9JU2Dq8GSsQ,2088
|
|
13
|
+
ScriptCollection-3.4.6.dist-info/top_level.txt,sha256=hY2hOVH0V0Ce51WB76zKkIWTUNwMUdHo4XDkR2vYVwg,17
|
|
14
|
+
ScriptCollection-3.4.6.dist-info/RECORD,,
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
ScriptCollection/Executables.py,sha256=BanfD3ls0ov3ECnsbuyzNstdYjqz_HplreQYJxrB8Ag,19068
|
|
2
|
-
ScriptCollection/GeneralUtilities.py,sha256=vZDiW5lWJRCrIZVs1bTCZ-O5slQnM5dv4GcJ-RTMowY,34378
|
|
3
|
-
ScriptCollection/ProgramRunnerBase.py,sha256=2kyOuoM3oFjBfLc9Q5t5RTz7Ya2CjUxFtB1rBBDmnjU,1937
|
|
4
|
-
ScriptCollection/ProgramRunnerEpew.py,sha256=nIzY4dG6W-xEpkeoTbozwNZtFSIo-bU_W6t6u1AZKtE,6275
|
|
5
|
-
ScriptCollection/ProgramRunnerPopen.py,sha256=HOs1QVnXiQtwXy1_xvH79bWBdd0i-2tUyyLloQBvMto,3023
|
|
6
|
-
ScriptCollection/ScriptCollectionCore.py,sha256=f-nUf0mVi4GfCOS83VWqLvRqfbCZXEODacBxeacD4pw,96083
|
|
7
|
-
ScriptCollection/TasksForCommonProjectStructure.py,sha256=R2a1LKlWrdp5TMjQSvdTsGv-F_3v7EpKidYZflxHJv4,144215
|
|
8
|
-
ScriptCollection/UpdateCertificates.py,sha256=Go-JJK-YTi7aBB1phlLxypa8GHkmFHBEPB0_TT9G-bw,7918
|
|
9
|
-
ScriptCollection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
ScriptCollection-3.4.3.dist-info/METADATA,sha256=lGelemdj5ymuM5sEHWH_aBfjGDWenkohDcNovW9FCZU,7650
|
|
11
|
-
ScriptCollection-3.4.3.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
12
|
-
ScriptCollection-3.4.3.dist-info/entry_points.txt,sha256=dJKdWcH41owxlKx_khj4P7DItr9lhxWP9JU2Dq8GSsQ,2088
|
|
13
|
-
ScriptCollection-3.4.3.dist-info/top_level.txt,sha256=hY2hOVH0V0Ce51WB76zKkIWTUNwMUdHo4XDkR2vYVwg,17
|
|
14
|
-
ScriptCollection-3.4.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|