ScriptCollection 3.5.151__py3-none-any.whl → 3.5.152__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/ScriptCollectionCore.py +1 -1
- ScriptCollection/TasksForCommonProjectStructure.py +75 -58
- {scriptcollection-3.5.151.dist-info → scriptcollection-3.5.152.dist-info}/METADATA +1 -1
- {scriptcollection-3.5.151.dist-info → scriptcollection-3.5.152.dist-info}/RECORD +7 -7
- {scriptcollection-3.5.151.dist-info → scriptcollection-3.5.152.dist-info}/WHEEL +0 -0
- {scriptcollection-3.5.151.dist-info → scriptcollection-3.5.152.dist-info}/entry_points.txt +0 -0
- {scriptcollection-3.5.151.dist-info → scriptcollection-3.5.152.dist-info}/top_level.txt +0 -0
@@ -240,10 +240,9 @@ class TasksForCommonProjectStructure:
|
|
240
240
|
@GeneralUtilities.check_arguments
|
241
241
|
def copy_source_files_to_output_directory(self, buildscript_file: str) -> None:
|
242
242
|
GeneralUtilities.write_message_to_stdout("Copy sourcecode...")
|
243
|
-
sc = ScriptCollectionCore()
|
244
243
|
folder = os.path.dirname(os.path.realpath(buildscript_file))
|
245
244
|
codeunit_folder = GeneralUtilities.resolve_relative_path("../..", folder)
|
246
|
-
result =
|
245
|
+
result = self.__sc.run_program_argsasarray("git", ["ls-tree", "-r", "HEAD", "--name-only"], codeunit_folder)
|
247
246
|
files = [f for f in result[1].split('\n') if len(f) > 0]
|
248
247
|
for file in files:
|
249
248
|
full_source_file = os.path.join(codeunit_folder, file)
|
@@ -271,7 +270,6 @@ class TasksForCommonProjectStructure:
|
|
271
270
|
}
|
272
271
|
for target in targets:
|
273
272
|
GeneralUtilities.write_message_to_stdout(f"Build package {package_name} for target {target_names[target]}...")
|
274
|
-
sc = ScriptCollectionCore()
|
275
273
|
self.run_with_epew("flutter", f"build {target}", src_folder, verbosity)
|
276
274
|
if target == "web":
|
277
275
|
web_relase_folder = os.path.join(src_folder, "build/web")
|
@@ -300,7 +298,7 @@ class TasksForCommonProjectStructure:
|
|
300
298
|
GeneralUtilities.ensure_directory_does_not_exist(apk_folder)
|
301
299
|
GeneralUtilities.ensure_directory_exists(apk_folder)
|
302
300
|
apks_file = f"{apk_folder}/{codeunit_name}.apks"
|
303
|
-
|
301
|
+
self.__sc.run_program("java", f"-jar {bundletool} build-apks --bundle={aab_file} --output={apks_file} --mode=universal", aab_relase_folder, verbosity)
|
304
302
|
with zipfile.ZipFile(apks_file, "r") as zip_ref:
|
305
303
|
zip_ref.extract("universal.apk", apk_folder)
|
306
304
|
GeneralUtilities.ensure_file_does_not_exist(apks_file)
|
@@ -485,7 +483,7 @@ class TasksForCommonProjectStructure:
|
|
485
483
|
self.write_version_to_codeunit_file(codeunit_file, current_version)
|
486
484
|
|
487
485
|
@GeneralUtilities.check_arguments
|
488
|
-
def t4_transform(self, commontasks_script_file_of_current_file: str, verbosity: int,ignore_git_ignored_files:bool=True):
|
486
|
+
def t4_transform(self, commontasks_script_file_of_current_file: str, verbosity: int, ignore_git_ignored_files: bool = True):
|
489
487
|
codeunit_folder = GeneralUtilities.resolve_relative_path("../..", commontasks_script_file_of_current_file)
|
490
488
|
self.__ensure_grylibrary_is_available(codeunit_folder)
|
491
489
|
repository_folder: str = os.path.dirname(codeunit_folder)
|
@@ -494,51 +492,19 @@ class TasksForCommonProjectStructure:
|
|
494
492
|
for search_result in Path(codeunit_folder).glob('**/*.tt'):
|
495
493
|
tt_file = str(search_result)
|
496
494
|
relative_path_to_tt_file_from_repository = str(Path(tt_file).relative_to(repository_folder))
|
497
|
-
if (not ignore_git_ignored_files) or (ignore_git_ignored_files and not self.__sc.file_is_git_ignored(relative_path_to_tt_file_from_repository,repository_folder)):
|
495
|
+
if (not ignore_git_ignored_files) or (ignore_git_ignored_files and not self.__sc.file_is_git_ignored(relative_path_to_tt_file_from_repository, repository_folder)):
|
498
496
|
relative_path_to_tt_file_from_codeunit_file = str(Path(tt_file).relative_to(codeunit_folder))
|
499
497
|
argument = [f"--parameter=repositoryFolder={repository_folder}", f"--parameter=codeUnitName={codeunitname}", relative_path_to_tt_file_from_codeunit_file]
|
500
498
|
self.__sc.run_program_argsasarray("t4", argument, codeunit_folder, verbosity=verbosity)
|
501
499
|
|
502
500
|
@GeneralUtilities.check_arguments
|
503
|
-
def get_resource_from_global_resource(self,codeunit_folder:str,resource_name:str):
|
504
|
-
repository_folder:str= GeneralUtilities.resolve_relative_path("..", codeunit_folder)
|
505
|
-
source_folder:str=os.path.join(repository_folder,"Other","Resources",resource_name)
|
506
|
-
target_folder:str=os.path.join(codeunit_folder,"Other","Resources",resource_name)
|
501
|
+
def get_resource_from_global_resource(self, codeunit_folder: str, resource_name: str):
|
502
|
+
repository_folder: str = GeneralUtilities.resolve_relative_path("..", codeunit_folder)
|
503
|
+
source_folder: str = os.path.join(repository_folder, "Other", "Resources", resource_name)
|
504
|
+
target_folder: str = os.path.join(codeunit_folder, "Other", "Resources", resource_name)
|
507
505
|
GeneralUtilities.ensure_folder_exists_and_is_empty(target_folder)
|
508
506
|
GeneralUtilities.copy_content_of_folder(source_folder, target_folder)
|
509
507
|
|
510
|
-
@GeneralUtilities.check_arguments
|
511
|
-
def clone_repository_as_resource(self,local_repository_folder:str,remote_repository_link:str, resource_name:str,repository_subname:str=None)->str:
|
512
|
-
commit_id:str=None
|
513
|
-
target_folder:str=os.path.join(local_repository_folder,"Other","Resources",resource_name)
|
514
|
-
if repository_subname is not None:
|
515
|
-
target_folder=os.path.join(target_folder,repository_subname)
|
516
|
-
if not os.path.isdir(target_folder):
|
517
|
-
GeneralUtilities.ensure_directory_exists(target_folder)
|
518
|
-
GeneralUtilities.write_message_to_stdout(f"Clone {remote_repository_link} into {target_folder}...")
|
519
|
-
self.__sc.run_program("git",f"clone --recurse-submodules {remote_repository_link} {target_folder}")
|
520
|
-
|
521
|
-
self.__sc.git_get_commit_id(target_folder)
|
522
|
-
|
523
|
-
git_folders:list[str]=[]
|
524
|
-
git_files:list[str]=[]
|
525
|
-
for dirpath, dirnames, filenames in os.walk(target_folder):
|
526
|
-
for dirname in dirnames:
|
527
|
-
if dirname == ".git":
|
528
|
-
full_path = os.path.join(dirpath, dirname)
|
529
|
-
git_folders.append(full_path)
|
530
|
-
for filename in filenames:
|
531
|
-
if filename == ".git":
|
532
|
-
full_path = os.path.join(dirpath, filename)
|
533
|
-
git_files.append(full_path)
|
534
|
-
for git_folder in git_folders:
|
535
|
-
if os.path.isdir(git_folder):
|
536
|
-
GeneralUtilities.ensure_directory_does_not_exist(git_folder)
|
537
|
-
for git_file in git_files:
|
538
|
-
if os.path.isdir(git_file):
|
539
|
-
GeneralUtilities.ensure_file_does_not_exist(git_file)
|
540
|
-
return commit_id
|
541
|
-
|
542
508
|
@GeneralUtilities.check_arguments
|
543
509
|
def standardized_tasks_generate_reference_by_docfx(self, generate_reference_script_file: str, verbosity: int, targetenvironmenttype: str, commandline_arguments: list[str]) -> None:
|
544
510
|
verbosity = TasksForCommonProjectStructure.get_verbosity_from_commandline_arguments(commandline_arguments, verbosity)
|
@@ -821,10 +787,9 @@ class TasksForCommonProjectStructure:
|
|
821
787
|
GeneralUtilities.write_message_to_stdout("Generate SBOM...")
|
822
788
|
self.assert_is_codeunit_folder(codeunit_folder)
|
823
789
|
codeunit_name = os.path.basename(codeunit_folder)
|
824
|
-
sc = ScriptCollectionCore()
|
825
790
|
bomfile_folder = "Other\\Artifacts\\BOM"
|
826
791
|
verbosity = TasksForCommonProjectStructure.get_verbosity_from_commandline_arguments(commandline_arguments, verbosity)
|
827
|
-
|
792
|
+
self.__sc.run_program_argsasarray("dotnet", ["CycloneDX", f"{codeunit_name}\\{codeunit_name}.csproj", "-o", bomfile_folder, "--disable-github-licenses"], codeunit_folder, verbosity=verbosity)
|
828
793
|
codeunitversion = self.get_version_of_codeunit(os.path.join(codeunit_folder, f"{codeunit_name}.codeunit.xml"))
|
829
794
|
target = f"{codeunit_folder}\\{bomfile_folder}\\{codeunit_name}.{codeunitversion}.sbom.xml"
|
830
795
|
GeneralUtilities.ensure_file_does_not_exist(target)
|
@@ -1495,8 +1460,7 @@ class TasksForCommonProjectStructure:
|
|
1495
1460
|
codeunit_folder = os.path.join(repository_folder, codeunitname)
|
1496
1461
|
artifacts_folder = self.get_artifacts_folder(repository_folder, codeunitname)
|
1497
1462
|
applicationimage_folder = os.path.join(artifacts_folder, "BuildResult_OCIImage")
|
1498
|
-
|
1499
|
-
image_file = sc.find_file_by_extension(applicationimage_folder, "tar")
|
1463
|
+
image_file = self.__sc.find_file_by_extension(applicationimage_folder, "tar")
|
1500
1464
|
image_filename = os.path.basename(image_file)
|
1501
1465
|
codeunit_version = self.get_version_of_codeunit(os.path.join(codeunit_folder, f"{codeunitname}.codeunit.xml"))
|
1502
1466
|
if remote_image_name is None:
|
@@ -1507,15 +1471,15 @@ class TasksForCommonProjectStructure:
|
|
1507
1471
|
remote_image_latest = f"{remote_repo}:latest"
|
1508
1472
|
remote_image_version = f"{remote_repo}:{codeunit_version}"
|
1509
1473
|
GeneralUtilities.write_message_to_stdout("Load image...")
|
1510
|
-
|
1474
|
+
self.__sc.run_program("docker", f"load --input {image_filename}", applicationimage_folder, verbosity=verbosity)
|
1511
1475
|
GeneralUtilities.write_message_to_stdout("Tag image...")
|
1512
|
-
|
1513
|
-
|
1476
|
+
self.__sc.run_program("docker", f"tag {local_image_name}:{codeunit_version} {remote_image_latest}", verbosity=verbosity)
|
1477
|
+
self.__sc.run_program("docker", f"tag {local_image_name}:{codeunit_version} {remote_image_version}", verbosity=verbosity)
|
1514
1478
|
GeneralUtilities.write_message_to_stdout("Push image...")
|
1515
|
-
|
1516
|
-
|
1479
|
+
self.__sc.run_program("docker", f"push {remote_image_latest}", verbosity=verbosity)
|
1480
|
+
self.__sc.run_program("docker", f"push {remote_image_version}", verbosity=verbosity)
|
1517
1481
|
if push_readme:
|
1518
|
-
|
1482
|
+
self.__sc.run_program("docker-pushrm", f"{remote_repo}", codeunit_folder, verbosity=verbosity)
|
1519
1483
|
|
1520
1484
|
@GeneralUtilities.check_arguments
|
1521
1485
|
def get_dependent_code_units(self, codeunit_file: str) -> list[str]:
|
@@ -1797,7 +1761,7 @@ class TasksForCommonProjectStructure:
|
|
1797
1761
|
@GeneralUtilities.check_arguments
|
1798
1762
|
def get_version_of_project(self, repository_folder: str) -> str:
|
1799
1763
|
self.__sc.assert_is_git_repository(repository_folder)
|
1800
|
-
return
|
1764
|
+
return self.__sc.get_semver_version_from_gitversion(repository_folder)
|
1801
1765
|
|
1802
1766
|
@GeneralUtilities.check_arguments
|
1803
1767
|
def replace_common_variables_in_nuspec_file(self, codeunit_folder: str) -> None:
|
@@ -2248,7 +2212,7 @@ class TasksForCommonProjectStructure:
|
|
2248
2212
|
openapi_spec_file = os.path.join(codeunit_folder, "Other", "Resources", "DependentCodeUnits", name_of_api_providing_codeunit, "APISpecification", f"{name_of_api_providing_codeunit}.latest.api.json")
|
2249
2213
|
target_folder = os.path.join(codeunit_folder, target_subfolder_in_codeunit)
|
2250
2214
|
GeneralUtilities.ensure_folder_exists_and_is_empty(target_folder)
|
2251
|
-
|
2215
|
+
self.__sc.run_program("java", f'-jar {openapigenerator_jar_file} generate -i {openapi_spec_file} -g {language} -o {target_folder} --global-property supportingFiles --global-property models --global-property apis', codeunit_folder)
|
2252
2216
|
|
2253
2217
|
@GeneralUtilities.check_arguments
|
2254
2218
|
def generate_api_client_from_dependent_codeunit_in_dotnet(self, file: str, name_of_api_providing_codeunit: str, base_namespace: str) -> None:
|
@@ -2266,7 +2230,7 @@ class TasksForCommonProjectStructure:
|
|
2266
2230
|
openapi_spec_file = os.path.join(codeunit_folder, "Other", "Resources", "DependentCodeUnits", name_of_api_providing_codeunit, "APISpecification", f"{name_of_api_providing_codeunit}.latest.api.json")
|
2267
2231
|
target_folder = os.path.join(codeunit_folder, target_subfolder_in_codeunit)
|
2268
2232
|
GeneralUtilities.ensure_directory_exists(target_folder)
|
2269
|
-
|
2233
|
+
self.__sc.run_program("java", f'-jar {openapigenerator_jar_file} generate -i {openapi_spec_file} -g {language} -o {target_folder} --global-property supportingFiles --global-property models --global-property apis {additional_properties}', codeunit_folder)
|
2270
2234
|
|
2271
2235
|
# move docs to correct folder
|
2272
2236
|
target_folder_docs = os.path.join(target_folder, "docs")
|
@@ -2963,13 +2927,12 @@ class TasksForCommonProjectStructure:
|
|
2963
2927
|
|
2964
2928
|
@GeneralUtilities.check_arguments
|
2965
2929
|
def __generate_svg_files_from_plantuml(self, diagrams_files_folder: str, plant_uml_folder: str) -> None:
|
2966
|
-
sc = ScriptCollectionCore()
|
2967
2930
|
for file in GeneralUtilities.get_all_files_of_folder(diagrams_files_folder):
|
2968
2931
|
if file.endswith(".plantuml"):
|
2969
2932
|
output_filename = self.get_output_filename_for_plantuml_filename(file)
|
2970
2933
|
argument = ['-jar', f'{plant_uml_folder}/plantuml.jar', '-tsvg', os.path.basename(file)]
|
2971
2934
|
folder = os.path.dirname(file)
|
2972
|
-
|
2935
|
+
self.__sc.run_program_argsasarray("java", argument, folder, verbosity=0)
|
2973
2936
|
result_file = folder+"/" + output_filename
|
2974
2937
|
GeneralUtilities.assert_file_exists(result_file)
|
2975
2938
|
self.__sc.format_xml_file(result_file)
|
@@ -3067,7 +3030,7 @@ class TasksForCommonProjectStructure:
|
|
3067
3030
|
artifacts_folder = os.path.join(codeunit_folder, "Other", "Artifacts", artifact_name_of_zip)
|
3068
3031
|
manifest_folder = os.path.join(codeunit_folder, "Other", "Artifacts", "WinGet-Manifest")
|
3069
3032
|
GeneralUtilities.assert_folder_exists(artifacts_folder)
|
3070
|
-
artifacts_file =
|
3033
|
+
artifacts_file = self.__sc.find_file_by_extension(artifacts_folder, "zip")
|
3071
3034
|
winget_template_file = os.path.join(build_folder, "WinGet-Template.yaml")
|
3072
3035
|
winget_manifest_file = os.path.join(manifest_folder, "WinGet-Manifest.yaml")
|
3073
3036
|
GeneralUtilities.assert_file_exists(winget_template_file)
|
@@ -3502,3 +3465,57 @@ class TasksForCommonProjectStructure:
|
|
3502
3465
|
excluded = ["opendms"]
|
3503
3466
|
iu.update_all_services_in_docker_compose_file(dockercomposefile, VersionEcholon.LatestPatchOrLatestMinor, excluded)
|
3504
3467
|
iu.check_for_newest_version(dockercomposefile, excluded)
|
3468
|
+
|
3469
|
+
|
3470
|
+
@GeneralUtilities.check_arguments
|
3471
|
+
def clone_repository_as_resource(self, local_repository_folder: str, remote_repository_link: str, resource_name: str, repository_subname: str = None) -> None:
|
3472
|
+
resrepo_commit_id_folder: str = os.path.join(local_repository_folder, "Other", "Resources", f"{resource_name}Version")
|
3473
|
+
resrepo_commit_id_file: str = os.path.join(resrepo_commit_id_folder, f"{resource_name}Version.txt")
|
3474
|
+
latest_version: str = GeneralUtilities.read_text_from_file(resrepo_commit_id_file)
|
3475
|
+
resrepo_data_folder: str = os.path.join(local_repository_folder, "Other", "Resources", resource_name).replace("\\", "/")
|
3476
|
+
current_version: str = None
|
3477
|
+
resrepo_data_version: str = os.path.join(resrepo_data_folder, f"{resource_name}Version.txt")
|
3478
|
+
if os.path.isdir(resrepo_data_folder):
|
3479
|
+
if os.path.isfile(resrepo_data_version):
|
3480
|
+
current_version = GeneralUtilities.read_text_from_file(resrepo_data_version)
|
3481
|
+
if (current_version is None) or (current_version != latest_version):
|
3482
|
+
target_folder: str = resrepo_data_folder
|
3483
|
+
if repository_subname is not None:
|
3484
|
+
target_folder = f"{resrepo_data_folder}/{repository_subname}"
|
3485
|
+
GeneralUtilities.ensure_folder_exists_and_is_empty(target_folder)
|
3486
|
+
self.__sc.run_program("git", f"clone --recurse-submodules {remote_repository_link} {target_folder}")
|
3487
|
+
self.__sc.run_program("git", f"checkout {latest_version}", target_folder)
|
3488
|
+
GeneralUtilities.write_text_to_file(resrepo_data_version, latest_version)
|
3489
|
+
|
3490
|
+
git_folders: list[str] = []
|
3491
|
+
git_files: list[str] = []
|
3492
|
+
for dirpath, dirnames, filenames in os.walk(target_folder):
|
3493
|
+
for dirname in dirnames:
|
3494
|
+
if dirname == ".git":
|
3495
|
+
full_path = os.path.join(dirpath, dirname)
|
3496
|
+
git_folders.append(full_path)
|
3497
|
+
for filename in filenames:
|
3498
|
+
if filename == ".git":
|
3499
|
+
full_path = os.path.join(dirpath, filename)
|
3500
|
+
git_files.append(full_path)
|
3501
|
+
for git_folder in git_folders:
|
3502
|
+
if os.path.isdir(git_folder):
|
3503
|
+
GeneralUtilities.ensure_directory_does_not_exist(git_folder)
|
3504
|
+
for git_file in git_files:
|
3505
|
+
if os.path.isdir(git_file):
|
3506
|
+
GeneralUtilities.ensure_file_does_not_exist(git_file)
|
3507
|
+
|
3508
|
+
def set_latest_version_for_clone_repository_as_resource(self, resourcename: str, github_link: str, branch: str = "main"):
|
3509
|
+
current_file = str(Path(__file__).absolute())
|
3510
|
+
repository_folder = GeneralUtilities.resolve_relative_path("../../..", current_file)
|
3511
|
+
|
3512
|
+
resrepo_commit_id_folder: str = os.path.join(repository_folder, "Other", "Resources", f"{resourcename}Version")
|
3513
|
+
resrepo_commit_id_file: str = os.path.join(resrepo_commit_id_folder, f"{resourcename}Version.txt")
|
3514
|
+
current_version: str = GeneralUtilities.read_text_from_file(resrepo_commit_id_file)
|
3515
|
+
|
3516
|
+
stdOut = [l.split("\t") for l in GeneralUtilities.string_to_lines(self.__sc.run_program("git", f"ls-remote {github_link}")[1])]
|
3517
|
+
stdOut = [l for l in stdOut if l[1] == f"refs/heads/{branch}"]
|
3518
|
+
GeneralUtilities.assert_condition(len(stdOut) == 1)
|
3519
|
+
latest_version: str = stdOut[0][0]
|
3520
|
+
if current_version != latest_version:
|
3521
|
+
GeneralUtilities.write_text_to_file(resrepo_commit_id_file, latest_version)
|
@@ -7,11 +7,11 @@ ScriptCollection/ProgramRunnerBase.py,sha256=2kMIAqdc65UjBAddOZkzy_aFx9h5roZ5a4b
|
|
7
7
|
ScriptCollection/ProgramRunnerEpew.py,sha256=4pjEd0r9Fcz3TTDv0MdTSd5KkigYXcWUVI1X43regfU,6477
|
8
8
|
ScriptCollection/ProgramRunnerPopen.py,sha256=BPY7-ZMIlqT7JOKz8qlB5c0laF2Js-ijzqk09GxZC48,3821
|
9
9
|
ScriptCollection/SCLog.py,sha256=GJ44S6VaBVwX5Dd6MIrdZn6I0dpaaYKVq9w-N0nMXlo,4496
|
10
|
-
ScriptCollection/ScriptCollectionCore.py,sha256=
|
11
|
-
ScriptCollection/TasksForCommonProjectStructure.py,sha256=
|
10
|
+
ScriptCollection/ScriptCollectionCore.py,sha256=cOswEDwCQ4ndqIz-X0M2lGQD1WBtKLXvjd5aXtyoxUo,138093
|
11
|
+
ScriptCollection/TasksForCommonProjectStructure.py,sha256=_QNBZo_48y6UIGKpeepkrCHNvkCpO6MHB2kakgLBe4k,246625
|
12
12
|
ScriptCollection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
|
-
scriptcollection-3.5.
|
14
|
-
scriptcollection-3.5.
|
15
|
-
scriptcollection-3.5.
|
16
|
-
scriptcollection-3.5.
|
17
|
-
scriptcollection-3.5.
|
13
|
+
scriptcollection-3.5.152.dist-info/METADATA,sha256=W5nkU3X26V-6tgI3aFnpzsaaVPOFHYcHQ1iQW2U_ILg,7689
|
14
|
+
scriptcollection-3.5.152.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
15
|
+
scriptcollection-3.5.152.dist-info/entry_points.txt,sha256=AvmVO9iyWImExpvzL3YYQ9AOEiUIN9guPRRG_W_VNWY,4116
|
16
|
+
scriptcollection-3.5.152.dist-info/top_level.txt,sha256=hY2hOVH0V0Ce51WB76zKkIWTUNwMUdHo4XDkR2vYVwg,17
|
17
|
+
scriptcollection-3.5.152.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|