ScriptCollection 3.5.148__py3-none-any.whl → 3.5.150__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 +28 -6
- ScriptCollection/ScriptCollectionCore.py +24 -2
- ScriptCollection/TasksForCommonProjectStructure.py +89 -65
- {scriptcollection-3.5.148.dist-info → scriptcollection-3.5.150.dist-info}/METADATA +7 -7
- {scriptcollection-3.5.148.dist-info → scriptcollection-3.5.150.dist-info}/RECORD +8 -8
- {scriptcollection-3.5.148.dist-info → scriptcollection-3.5.150.dist-info}/entry_points.txt +2 -1
- {scriptcollection-3.5.148.dist-info → scriptcollection-3.5.150.dist-info}/WHEEL +0 -0
- {scriptcollection-3.5.148.dist-info → scriptcollection-3.5.150.dist-info}/top_level.txt +0 -0
ScriptCollection/Executables.py
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import base64
|
1
2
|
import os
|
2
3
|
import argparse
|
3
4
|
import time
|
@@ -412,12 +413,6 @@ def FolderExists() -> int:
|
|
412
413
|
return 2
|
413
414
|
|
414
415
|
|
415
|
-
def SetContentOfFile() -> int:
|
416
|
-
GeneralUtilities.write_message_to_stderr("This function is not implemented yet.")
|
417
|
-
# TODO implement function
|
418
|
-
return 1
|
419
|
-
|
420
|
-
|
421
416
|
def PrintFileContent() -> int:
|
422
417
|
parser = argparse.ArgumentParser(description="This function prints the size of a file")
|
423
418
|
parser.add_argument('-p', '--path', required=True)
|
@@ -726,3 +721,30 @@ def UpdateImagesInDockerComposeFile() -> int:
|
|
726
721
|
args.file = os.path.join(os.getcwd(), "docker-compose.yml")
|
727
722
|
iu.update_all_services_in_docker_compose_file(args.file, VersionEcholon.LatestPatch, [])
|
728
723
|
return 0
|
724
|
+
|
725
|
+
|
726
|
+
def SetFileContent() -> int:
|
727
|
+
parser = argparse.ArgumentParser(description="This function writes content into a file.")
|
728
|
+
parser.add_argument('-p', '--path', required=True)
|
729
|
+
parser.add_argument('-b', '--argumentisinbase64', action='store_true', required=False, default=False)
|
730
|
+
parser.add_argument('-c', '--content', required=True)
|
731
|
+
parser.add_argument('-e', '--encoding', required=False, default="utf-8")
|
732
|
+
args = parser.parse_args()
|
733
|
+
sc = ScriptCollectionCore()
|
734
|
+
content = args.content
|
735
|
+
if args.argumentisinbase64:
|
736
|
+
base64_string: str = args.content
|
737
|
+
base64_bytes = base64_string.encode('utf-8')
|
738
|
+
original_bytes = base64.b64decode(base64_bytes)
|
739
|
+
content = original_bytes.decode('utf-8')
|
740
|
+
sc.set_file_content(args.path, content, args.encoding)
|
741
|
+
return 0
|
742
|
+
|
743
|
+
|
744
|
+
def GenerateTaskfileFromWorkspacefile() -> int:
|
745
|
+
parser = argparse.ArgumentParser(description="Generates a taskfile.yml-file from a .code-workspace-file")
|
746
|
+
parser.add_argument('-f', '--repositoryfolder', required=True)
|
747
|
+
args = parser.parse_args()
|
748
|
+
t = TasksForCommonProjectStructure()
|
749
|
+
t.generate_tasksfile_from_workspace_file(args.repositoryfolder)
|
750
|
+
return 0
|
@@ -8,6 +8,7 @@ import time
|
|
8
8
|
from io import BytesIO
|
9
9
|
import itertools
|
10
10
|
import math
|
11
|
+
import base64
|
11
12
|
import os
|
12
13
|
from queue import Queue, Empty
|
13
14
|
from concurrent.futures import ThreadPoolExecutor
|
@@ -33,7 +34,7 @@ from .ProgramRunnerPopen import ProgramRunnerPopen
|
|
33
34
|
from .ProgramRunnerEpew import ProgramRunnerEpew, CustomEpewArgument
|
34
35
|
from .SCLog import SCLog, LogLevel
|
35
36
|
|
36
|
-
version = "3.5.
|
37
|
+
version = "3.5.150"
|
37
38
|
__version__ = version
|
38
39
|
|
39
40
|
|
@@ -130,7 +131,8 @@ class ScriptCollectionCore:
|
|
130
131
|
|
131
132
|
@GeneralUtilities.check_arguments
|
132
133
|
def find_file_by_extension(self, folder: str, extension_without_dot: str):
|
133
|
-
|
134
|
+
"""This function works platform-independent also for non-local-executions if the ScriptCollection commandline-commands are available as global command on the target-system."""
|
135
|
+
result = [file for file in self.list_content(folder, True, False, False) if file.endswith(f".{extension_without_dot}")]
|
134
136
|
result_length = len(result)
|
135
137
|
if result_length == 0:
|
136
138
|
raise FileNotFoundError(f"No file available in folder '{folder}' with extension '{extension_without_dot}'.")
|
@@ -778,6 +780,26 @@ class ScriptCollectionCore:
|
|
778
780
|
return False
|
779
781
|
raise ValueError(f"Fatal error occurrs while checking whether folder '{path}' exists. StdErr: '{stderr}'")
|
780
782
|
|
783
|
+
@GeneralUtilities.check_arguments
|
784
|
+
def get_file_content(self, path: str, encoding: str = "utf-8") -> str:
|
785
|
+
"""This function works platform-independent also for non-local-executions if the ScriptCollection commandline-commands are available as global command on the target-system."""
|
786
|
+
if self.program_runner.will_be_executed_locally():
|
787
|
+
return GeneralUtilities.read_text_from_file(path, encoding)
|
788
|
+
else:
|
789
|
+
result = self.run_program_argsasarray("scprintfilecontent", ["--path", path, "--encofing", encoding]) # works platform-indepent
|
790
|
+
return result[1].replace("\\n", "\n")
|
791
|
+
|
792
|
+
@GeneralUtilities.check_arguments
|
793
|
+
def set_file_content(self, path: str, content: str, encoding: str = "utf-8") -> None:
|
794
|
+
"""This function works platform-independent also for non-local-executions if the ScriptCollection commandline-commands are available as global command on the target-system."""
|
795
|
+
if self.program_runner.will_be_executed_locally():
|
796
|
+
GeneralUtilities.write_text_to_file(path, content, encoding)
|
797
|
+
else:
|
798
|
+
content_bytes = content.encode('utf-8')
|
799
|
+
base64_bytes = base64.b64encode(content_bytes)
|
800
|
+
base64_string = base64_bytes.decode('utf-8')
|
801
|
+
self.run_program_argsasarray("scsetfilecontent", ["--path", path, "--argumentisinbase64", "--content", base64_string]) # works platform-indepent
|
802
|
+
|
781
803
|
@GeneralUtilities.check_arguments
|
782
804
|
def remove(self, path: str) -> None:
|
783
805
|
"""This function works platform-independent also for non-local-executions if the ScriptCollection commandline-commands are available as global command on the target-system."""
|
@@ -124,6 +124,17 @@ class TasksForCommonProjectStructure:
|
|
124
124
|
sc.log = log
|
125
125
|
self.__sc = sc
|
126
126
|
|
127
|
+
@GeneralUtilities.check_arguments
|
128
|
+
def is_codeunit_folder(self, codeunit_folder: str) -> bool:
|
129
|
+
repo_folder = GeneralUtilities.resolve_relative_path("..", codeunit_folder)
|
130
|
+
if not self.__sc.is_git_repository(repo_folder):
|
131
|
+
return False
|
132
|
+
codeunit_name = os.path.basename(codeunit_folder)
|
133
|
+
codeunit_file: str = os.path.join(codeunit_folder, f"{codeunit_name}.codeunit.xml")
|
134
|
+
if not os.path.isfile(codeunit_file):
|
135
|
+
return False
|
136
|
+
return True
|
137
|
+
|
127
138
|
@GeneralUtilities.check_arguments
|
128
139
|
def assert_is_codeunit_folder(self, codeunit_folder: str) -> str:
|
129
140
|
repo_folder = GeneralUtilities.resolve_relative_path("..", codeunit_folder)
|
@@ -1884,7 +1895,7 @@ class TasksForCommonProjectStructure:
|
|
1884
1895
|
GeneralUtilities.write_text_to_file(file, result)
|
1885
1896
|
|
1886
1897
|
@GeneralUtilities.check_arguments
|
1887
|
-
def do_npm_install(self, package_json_folder: str, force: bool, verbosity: int) -> None:
|
1898
|
+
def do_npm_install(self, package_json_folder: str, force: bool, verbosity: int = 1) -> None:
|
1888
1899
|
argument1 = "install"
|
1889
1900
|
if force:
|
1890
1901
|
argument1 = f"{argument1} --force"
|
@@ -2092,6 +2103,14 @@ class TasksForCommonProjectStructure:
|
|
2092
2103
|
GeneralUtilities.ensure_directory_does_not_exist(target_folder)
|
2093
2104
|
shutil.copytree(source_folder, target_folder)
|
2094
2105
|
|
2106
|
+
@GeneralUtilities.check_arguments
|
2107
|
+
def copy_resources_from_global_project_resources(self, codeunit_folder: str, resource_name: str) -> None:
|
2108
|
+
self.assert_is_codeunit_folder(codeunit_folder)
|
2109
|
+
source_folder: str = GeneralUtilities.resolve_relative_path(f"../Other/Resources/{resource_name}", codeunit_folder)
|
2110
|
+
target_folder: str = GeneralUtilities.resolve_relative_path(f"Other/Resources/{resource_name}", codeunit_folder)
|
2111
|
+
GeneralUtilities.ensure_directory_does_not_exist(target_folder)
|
2112
|
+
shutil.copytree(source_folder, target_folder)
|
2113
|
+
|
2095
2114
|
@GeneralUtilities.check_arguments
|
2096
2115
|
def generate_openapi_file(self, buildscript_file: str, runtime: str, verbosity: int, commandline_arguments: list[str], swagger_document_name: str = "APISpecification") -> None:
|
2097
2116
|
GeneralUtilities.write_message_to_stdout("Generate OpenAPI-specification-file...")
|
@@ -2354,16 +2373,18 @@ class TasksForCommonProjectStructure:
|
|
2354
2373
|
self.__sc.update_dependencies_of_dotnet_project(csproj_file, verbosity, ignored_dependencies)
|
2355
2374
|
|
2356
2375
|
@GeneralUtilities.check_arguments
|
2357
|
-
def
|
2358
|
-
|
2359
|
-
|
2376
|
+
def update_dependencies_of_package_json(self, folder: str, verbosity: int, cmd_args: list[str]) -> None:
|
2377
|
+
if self.is_codeunit_folder(folder):
|
2378
|
+
ignored_dependencies = self.get_dependencies_which_are_ignored_from_updates(folder, True)
|
2379
|
+
else:
|
2380
|
+
ignored_dependencies = []
|
2360
2381
|
# TODO consider ignored_dependencies
|
2361
|
-
result = self.run_with_epew("npm", "outdated",
|
2382
|
+
result = self.run_with_epew("npm", "outdated", folder, verbosity, throw_exception_if_exitcode_is_not_zero=False)
|
2362
2383
|
if result[0] == 0:
|
2363
2384
|
return # all dependencies up to date
|
2364
2385
|
elif result[0] == 1:
|
2365
2386
|
package_json_content = None
|
2366
|
-
package_json_file = f"{
|
2387
|
+
package_json_file = f"{folder}/package.json"
|
2367
2388
|
with open(package_json_file, "r", encoding="utf-8") as package_json_file_object:
|
2368
2389
|
package_json_content = json.load(package_json_file_object)
|
2369
2390
|
lines = GeneralUtilities.string_to_lines(result[1])[1:][:-1]
|
@@ -2377,70 +2398,73 @@ class TasksForCommonProjectStructure:
|
|
2377
2398
|
package_json_content["devDependencies"][package] = latest_version
|
2378
2399
|
with open(package_json_file, "w", encoding="utf-8") as package_json_file_object:
|
2379
2400
|
json.dump(package_json_content, package_json_file_object, indent=4)
|
2380
|
-
self.do_npm_install(
|
2401
|
+
self.do_npm_install(folder, True, verbosity)
|
2381
2402
|
else:
|
2382
2403
|
GeneralUtilities.write_message_to_stderr("Update dependencies resulted in an error.")
|
2383
2404
|
|
2384
2405
|
@GeneralUtilities.check_arguments
|
2385
2406
|
def generate_tasksfile_from_workspace_file(self, repository_folder: str, append_cli_args_at_end: bool = False) -> None:
|
2386
|
-
|
2387
|
-
|
2388
|
-
|
2389
|
-
|
2390
|
-
|
2391
|
-
|
2392
|
-
|
2393
|
-
|
2394
|
-
|
2395
|
-
|
2396
|
-
|
2397
|
-
|
2398
|
-
|
2399
|
-
|
2400
|
-
|
2401
|
-
|
2402
|
-
|
2403
|
-
relative_script_file = "."
|
2404
|
-
if "options" in task:
|
2405
|
-
options = task["options"]
|
2406
|
-
if "cwd" in options:
|
2407
|
-
cwd: str = options["cwd"]
|
2408
|
-
cwd = cwd.replace("${workspaceFolder}", ".")
|
2409
|
-
relative_script_file = cwd
|
2410
|
-
if len(relative_script_file) == 0:
|
2411
|
-
relative_script_file = "."
|
2407
|
+
"""This function works platform-independent also for non-local-executions if the ScriptCollection commandline-commands are available as global command on the target-system."""
|
2408
|
+
if self.__sc.program_runner.will_be_executed_locally(): # works only locally, but much more performant than always running an external program
|
2409
|
+
self.__sc.assert_is_git_repository(repository_folder)
|
2410
|
+
workspace_file: str = self.__sc.find_file_by_extension(repository_folder, "code-workspace")
|
2411
|
+
task_file: str = repository_folder + "/Taskfile.yml"
|
2412
|
+
lines: list[str] = ["version: '3'", GeneralUtilities.empty_string, "tasks:", GeneralUtilities.empty_string]
|
2413
|
+
workspace_file_content: str = self.__sc.get_file_content(workspace_file)
|
2414
|
+
jsoncontent = json.loads(workspace_file_content)
|
2415
|
+
tasks = jsoncontent["tasks"]["tasks"]
|
2416
|
+
tasks.sort(key=lambda x: x["label"].split("/")[-1], reverse=False) # sort by the label of the task
|
2417
|
+
for task in tasks:
|
2418
|
+
if task["type"] == "shell":
|
2419
|
+
|
2420
|
+
description: str = task["label"]
|
2421
|
+
name: str = GeneralUtilities.to_pascal_case(description)
|
2422
|
+
command = task["command"]
|
2423
|
+
relative_script_file = task["command"]
|
2412
2424
|
|
2413
|
-
|
2414
|
-
|
2415
|
-
|
2416
|
-
|
2417
|
-
|
2418
|
-
|
2419
|
-
|
2420
|
-
|
2421
|
-
|
2422
|
-
|
2423
|
-
|
2424
|
-
|
2425
|
-
|
2426
|
-
|
2427
|
-
|
2428
|
-
|
2429
|
-
|
2430
|
-
|
2431
|
-
|
2432
|
-
|
2433
|
-
|
2434
|
-
|
2435
|
-
|
2436
|
-
|
2437
|
-
|
2438
|
-
|
2439
|
-
|
2440
|
-
|
2441
|
-
|
2442
|
-
|
2443
|
-
|
2425
|
+
relative_script_file = "."
|
2426
|
+
if "options" in task:
|
2427
|
+
options = task["options"]
|
2428
|
+
if "cwd" in options:
|
2429
|
+
cwd: str = options["cwd"]
|
2430
|
+
cwd = cwd.replace("${workspaceFolder}", ".")
|
2431
|
+
relative_script_file = cwd
|
2432
|
+
if len(relative_script_file) == 0:
|
2433
|
+
relative_script_file = "."
|
2434
|
+
|
2435
|
+
command_with_args = command
|
2436
|
+
if "args" in task:
|
2437
|
+
args = task["args"]
|
2438
|
+
if len(args) > 1:
|
2439
|
+
command_with_args = f"{command_with_args} {' '.join(args)}"
|
2440
|
+
|
2441
|
+
if "description" in task:
|
2442
|
+
additional_description = task["description"]
|
2443
|
+
description = f"{description} ({additional_description})"
|
2444
|
+
|
2445
|
+
if append_cli_args_at_end:
|
2446
|
+
command_with_args = f"{command_with_args} {{{{.CLI_ARGS}}}}"
|
2447
|
+
|
2448
|
+
cwd_literal = cwd.replace("\\", "\\\\").replace('"', '\\"') # escape backslashes and double quotes for YAML
|
2449
|
+
description_literal = description.replace("\\", "\\\\").replace('"', '\\"') # escape backslashes and double quotes for YAML
|
2450
|
+
|
2451
|
+
lines.append(f" {name}:")
|
2452
|
+
lines.append(f' desc: "{description_literal}"')
|
2453
|
+
lines.append(' silent: true')
|
2454
|
+
lines.append(f' dir: "{cwd_literal}"')
|
2455
|
+
lines.append(" cmds:")
|
2456
|
+
lines.append(f" - {command_with_args}")
|
2457
|
+
lines.append(' aliases:')
|
2458
|
+
lines.append(f' - {name.lower()}')
|
2459
|
+
if "aliases" in task:
|
2460
|
+
aliases = task["aliases"]
|
2461
|
+
for alias in aliases:
|
2462
|
+
lines.append(f' - {alias}')
|
2463
|
+
lines.append(GeneralUtilities.empty_string)
|
2464
|
+
|
2465
|
+
self.__sc.set_file_content(task_file, "\n".join(lines))
|
2466
|
+
else:
|
2467
|
+
self.__sc.run_program("scgeneratetasksfilefromworkspacefile", f"--repositoryfolder {repository_folder}")
|
2444
2468
|
|
2445
2469
|
@GeneralUtilities.check_arguments
|
2446
2470
|
def start_local_test_service(self, file: str):
|
@@ -3413,7 +3437,7 @@ class TasksForCommonProjectStructure:
|
|
3413
3437
|
self.__sc.install_requirementstxt_file(repository_folde+"/Other/requirements.txt", verbosity)
|
3414
3438
|
|
3415
3439
|
@GeneralUtilities.check_arguments
|
3416
|
-
def update_submodule(self, repository_folder: str, submodule_name: str,local_branch:str="main",remote_branch:str="main",remote:str="origin"):
|
3440
|
+
def update_submodule(self, repository_folder: str, submodule_name: str, local_branch: str = "main", remote_branch: str = "main", remote: str = "origin"):
|
3417
3441
|
submodule_folder = GeneralUtilities.resolve_relative_path("Other/Resources/Submodules/"+submodule_name, repository_folder)
|
3418
3442
|
self.__sc.git_fetch(submodule_folder, remote)
|
3419
3443
|
self.__sc.git_checkout(submodule_folder, local_branch)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ScriptCollection
|
3
|
-
Version: 3.5.
|
3
|
+
Version: 3.5.150
|
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
|
@@ -22,21 +22,21 @@ Classifier: Topic :: Terminals
|
|
22
22
|
Classifier: Topic :: Utilities
|
23
23
|
Requires-Python: >=3.10
|
24
24
|
Description-Content-Type: text/markdown
|
25
|
-
Requires-Dist: build>=1.
|
26
|
-
Requires-Dist: coverage>=7.
|
27
|
-
Requires-Dist: cyclonedx-bom>=
|
25
|
+
Requires-Dist: build>=1.3.0
|
26
|
+
Requires-Dist: coverage>=7.10.2
|
27
|
+
Requires-Dist: cyclonedx-bom>=7.0.0
|
28
28
|
Requires-Dist: defusedxml>=0.7.1
|
29
29
|
Requires-Dist: keyboard>=0.13.5
|
30
30
|
Requires-Dist: lcov-cobertura>=2.1.1
|
31
|
-
Requires-Dist: lxml>=
|
31
|
+
Requires-Dist: lxml>=6.0.0
|
32
32
|
Requires-Dist: ntplib>=0.4.0
|
33
|
-
Requires-Dist: Pillow>=11.
|
33
|
+
Requires-Dist: Pillow>=11.3.0
|
34
34
|
Requires-Dist: psutil>=7.0.0
|
35
35
|
Requires-Dist: pycdlib>=1.14.0
|
36
36
|
Requires-Dist: Pygments>=2.19.2
|
37
37
|
Requires-Dist: pylint>=3.3.7
|
38
38
|
Requires-Dist: pyOpenSSL>=25.1.0
|
39
|
-
Requires-Dist: PyPDF>=5.
|
39
|
+
Requires-Dist: PyPDF>=5.9.0
|
40
40
|
Requires-Dist: pytest>=8.4.1
|
41
41
|
Requires-Dist: PyYAML>=6.0.2
|
42
42
|
Requires-Dist: qrcode>=8.2
|
@@ -1,5 +1,5 @@
|
|
1
1
|
ScriptCollection/CertificateUpdater.py,sha256=OAxrG21k_o3W3niOOGNSZzUPJlvolOWc1lRB2dMhc3g,9212
|
2
|
-
ScriptCollection/Executables.py,sha256=
|
2
|
+
ScriptCollection/Executables.py,sha256=eX94RLNBarpWoZKeDo02gcP_qzmJDZcIx8XBZFVCFNc,36396
|
3
3
|
ScriptCollection/GeneralUtilities.py,sha256=PKdzq382RYVSWeSG_6z6FiHu-SiTOi2BavJKvP-0slU,47308
|
4
4
|
ScriptCollection/ImageUpdater.py,sha256=3B5pgAMnyne3ZogWz-suqglZGIB9FAKyWn31P9E1ST0,24491
|
5
5
|
ScriptCollection/ProcessesRunner.py,sha256=3mu4ZxzZleQo0Op6o9EYTCFiJfb6kx5ov2YfZfT89mU,1395
|
@@ -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=5NttFPAv0ArguQgpq-4BPm37_hiUQRlpyscIVH8b8qQ,138093
|
11
|
+
ScriptCollection/TasksForCommonProjectStructure.py,sha256=jPgWuxmQ0_iSE1fWZesNipG0ddATCFGLoU4RaWWW_LI,242339
|
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.150.dist-info/METADATA,sha256=8qYKtBv7zsacVbjXt6OPfjZIDfoK4d2hIJ3qYyj-XLE,7689
|
14
|
+
scriptcollection-3.5.150.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
15
|
+
scriptcollection-3.5.150.dist-info/entry_points.txt,sha256=UyXXDpgVK6U0rkdbe2g-d3a7JFhLFWTUFSYWhcJE7IA,4214
|
16
|
+
scriptcollection-3.5.150.dist-info/top_level.txt,sha256=hY2hOVH0V0Ce51WB76zKkIWTUNwMUdHo4XDkR2vYVwg,17
|
17
|
+
scriptcollection-3.5.150.dist-info/RECORD,,
|
@@ -28,6 +28,7 @@ scgeneratecertificate = ScriptCollection.Executables:GenerateCertificate
|
|
28
28
|
scgeneratecertificateauthority = ScriptCollection.Executables:GenerateCertificateAuthority
|
29
29
|
scgeneratecertificatesignrequest = ScriptCollection.Executables:GenerateCertificateSignRequest
|
30
30
|
scgeneratesnkfiles = ScriptCollection.Executables:GenerateSnkFiles
|
31
|
+
scgeneratetasksfilefromworkspacefile = ScriptCollection.Executables:GenerateTaskfileFromWorkspacefile
|
31
32
|
scgeneratethumbnail = ScriptCollection.Executables:GenerateThumbnail
|
32
33
|
schealthcheck = ScriptCollection.Executables:Healthcheck
|
33
34
|
sckeyboarddiagnosis = ScriptCollection.Executables:KeyboardDiagnosis
|
@@ -50,7 +51,7 @@ scremovefolder = ScriptCollection.Executables:RemoveFolder
|
|
50
51
|
screname = ScriptCollection.Executables:Rename
|
51
52
|
screplacesubstringsinfilenames = ScriptCollection.Executables:ReplaceSubstringsInFilenames
|
52
53
|
scsearchinfiles = ScriptCollection.Executables:SearchInFiles
|
53
|
-
|
54
|
+
scsetfilecontent = ScriptCollection.Executables:SetFileContent
|
54
55
|
scshow2faasqrcode = ScriptCollection.Executables:Show2FAAsQRCode
|
55
56
|
scshowmissingfiles = ScriptCollection.Executables:ShowMissingFiles
|
56
57
|
scsigncertificate = ScriptCollection.Executables:SignCertificate
|
File without changes
|
File without changes
|