diff --git a/.github/ISSUE_TEMPLATE/new_node_package.yml b/.github/ISSUE_TEMPLATE/new_node_package.yml
index 96ca27ec4..e89740f33 100644
--- a/.github/ISSUE_TEMPLATE/new_node_package.yml
+++ b/.github/ISSUE_TEMPLATE/new_node_package.yml
@@ -46,6 +46,13 @@ body:
placeholder: ex. 0.0.0.20240513
validations:
required: true
+ - type: input
+ id: arguments
+ attributes:
+ label: Arguments
+ description: |
+ Command-line arguments to pass to the tool when running it from the `Tools` directory. For example `--help`.
+ placeholder: ex. --help
- type: dropdown
id: category
validations:
diff --git a/.github/ISSUE_TEMPLATE/new_package.yml b/.github/ISSUE_TEMPLATE/new_package.yml
index bc15971c7..f7d023435 100644
--- a/.github/ISSUE_TEMPLATE/new_package.yml
+++ b/.github/ISSUE_TEMPLATE/new_package.yml
@@ -62,6 +62,13 @@ body:
placeholder: ex. 1.4.11
validations:
required: true
+ - type: input
+ id: arguments
+ attributes:
+ label: Arguments
+ description: |
+ Command-line arguments to pass to the tool when running it from the `Tools` directory. For example `--help`.
+ placeholder: ex. --help
- type: dropdown
id: category
validations:
diff --git a/.github/ISSUE_TEMPLATE/new_python_tool_pip.yml b/.github/ISSUE_TEMPLATE/new_python_tool_pip.yml
index 3b464f6c1..524c9d29f 100644
--- a/.github/ISSUE_TEMPLATE/new_python_tool_pip.yml
+++ b/.github/ISSUE_TEMPLATE/new_python_tool_pip.yml
@@ -46,6 +46,13 @@ body:
placeholder: ex. 1.4.11
validations:
required: true
+ - type: input
+ id: arguments
+ attributes:
+ label: Arguments
+ description: |
+ Command-line arguments to pass to the tool when running it from the `Tools` directory. For example `--help`.
+ placeholder: ex. --help
- type: dropdown
id: category
validations:
diff --git a/packages/capesolo.vm/capesolo.vm.nuspec b/packages/capesolo.vm/capesolo.vm.nuspec
new file mode 100644
index 000000000..bc03ecb9b
--- /dev/null
+++ b/packages/capesolo.vm/capesolo.vm.nuspec
@@ -0,0 +1,13 @@
+
+
+
+ capesolo.vm
+ 0.4.23
+ kevoreilly, enzok, doomedraven
+ test
+
+
+
+
+
+
diff --git a/packages/capesolo.vm/tools/chocolateyinstall.ps1 b/packages/capesolo.vm/tools/chocolateyinstall.ps1
new file mode 100644
index 000000000..185e2826a
--- /dev/null
+++ b/packages/capesolo.vm/tools/chocolateyinstall.ps1
@@ -0,0 +1,9 @@
+$ErrorActionPreference = 'Stop'
+Import-Module vm.common -Force -DisableNameChecking
+
+$toolName = 'CAPEsolo'
+$category = 'Debuggers'
+$version = '==0.4.23'
+$arguments = '--update-yara'
+
+VM-Install-With-Pip -toolName $toolName -category $category -version $version -arguments $arguments
diff --git a/packages/capesolo.vm/tools/chocolateyuninstall.ps1 b/packages/capesolo.vm/tools/chocolateyuninstall.ps1
new file mode 100644
index 000000000..c1426157e
--- /dev/null
+++ b/packages/capesolo.vm/tools/chocolateyuninstall.ps1
@@ -0,0 +1,7 @@
+$ErrorActionPreference = 'Continue'
+Import-Module vm.common -Force -DisableNameChecking
+
+$toolName = 'CAPEsolo'
+$category = 'Debuggers'
+
+VM-Uninstall-With-Pip $toolName $category
diff --git a/scripts/utils/create_package_template.py b/scripts/utils/create_package_template.py
index d5e3941b4..cb390146a 100755
--- a/scripts/utils/create_package_template.py
+++ b/scripts/utils/create_package_template.py
@@ -107,8 +107,9 @@ def package_version(dependency_version):
$zipUrl = '{target_url}'
$zipSha256 = '{target_hash}'
+$arguments = '{arguments}'
-VM-Install-From-Zip $toolName $category $zipUrl -zipSha256 $zipSha256 -consoleApp ${console_app} -innerFolder ${inner_folder}
+VM-Install-From-Zip $toolName $category $zipUrl -zipSha256 $zipSha256 -consoleApp ${console_app} -innerFolder ${inner_folder} -arguments $arguments
"""
"""
@@ -120,8 +121,9 @@ def package_version(dependency_version):
$toolName = '{tool_name}'
$category = '{category}'
+$arguments = '{arguments}'
-VM-Install-Node-Tool -toolName $toolName -category $category -arguments "--help"
+VM-Install-Node-Tool -toolName $toolName -category $category -arguments $arguments
"""
"""
@@ -155,8 +157,9 @@ def package_version(dependency_version):
$exeUrl = '{target_url}'
$exeSha256 = '{target_hash}'
+$arguments = '{arguments}'
-VM-Install-Single-Exe $toolName $category $exeUrl -exeSha256 $exeSha256 -consoleApp ${console_app}
+VM-Install-Single-Exe $toolName $category $exeUrl -exeSha256 $exeSha256 -consoleApp ${console_app} -arguments $arguments
"""
"""
@@ -200,8 +203,9 @@ def package_version(dependency_version):
$toolName = '{tool_name}'
$category = '{category}'
$version = '=={version}'
+$arguments = '{arguments}'
-VM-Install-With-Pip -toolName $toolName -category $category -version $version
+VM-Install-With-Pip -toolName $toolName -category $category -version $version -arguments $arguments
"""
"""
@@ -267,6 +271,7 @@ def create_zip_exe_template(packages_path, **kwargs):
target_hash=kwargs.get("target_hash"),
console_app=kwargs.get("console_app"),
inner_folder=kwargs.get("inner_folder"),
+ arguments=kwargs.get("arguments"),
)
@@ -281,6 +286,7 @@ def create_node_template(packages_path, **kwargs):
description=kwargs.get("description"),
tool_name=kwargs.get("tool_name"),
category=kwargs.get("category"),
+ arguments=kwargs.get("arguments"),
)
@@ -311,6 +317,7 @@ def create_single_exe_template(packages_path, **kwargs):
description=kwargs.get("description"),
tool_name=kwargs.get("tool_name"),
category=kwargs.get("category"),
+ arguments=kwargs.get("arguments"),
target_url=kwargs.get("target_url"),
target_hash=kwargs.get("target_hash"),
console_app=kwargs.get("console_app"),
@@ -358,6 +365,7 @@ def create_pip_template(packages_path, **kwargs):
description=kwargs.get("description"),
tool_name=kwargs.get("tool_name"),
category=kwargs.get("category"),
+ arguments=kwargs.get("arguments"),
)
def create_template(
@@ -377,6 +385,7 @@ def create_template(
dependency="",
console_app="",
inner_folder="",
+ arguments="",
):
pkg_path = os.path.join(packages_path, f"{pkg_name}.vm")
try:
@@ -408,6 +417,7 @@ def create_template(
tool_name=tool_name,
version=version,
category=category,
+ arguments=arguments,
target_url=target_url,
target_hash=target_hash,
shim_path=shim_path,
@@ -470,6 +480,7 @@ def get_script_directory():
"description",
"tool_name",
"category",
+ "arguments",
],
},
"SINGLE_EXE": {
@@ -486,6 +497,7 @@ def get_script_directory():
"target_url",
"target_hash",
"console_app",
+ "arguments",
],
},
"SINGLE_PS1": {
@@ -529,6 +541,7 @@ def get_script_directory():
"description",
"tool_name",
"category",
+ "arguments",
],
},
}
@@ -601,6 +614,7 @@ def main(argv=None):
parser.add_argument("--shim_path", type=str, default="", help="Metapackage shim path")
parser.add_argument("--console_app", type=str, default="false", choices=["false", "true"], help="The tool is a console application, the shortcut should run it with `cmd /K $toolPath --help` to be able to see the output.")
parser.add_argument("--inner_folder", type=str, default="false", choices=["false", "true"], help="The ZIP file unzip to a single folder that contains all the tools.")
+ parser.add_argument("--arguments", type=str, required=False, default="", help="Command-line arguments for the execution")
args = parser.parse_args(args=argv)
if args.type is None:
diff --git a/scripts/utils/create_package_template_from_json.py b/scripts/utils/create_package_template_from_json.py
index 79ba3512e..2b0afb3de 100755
--- a/scripts/utils/create_package_template_from_json.py
+++ b/scripts/utils/create_package_template_from_json.py
@@ -25,8 +25,8 @@ def main():
for k, v in pkg.items():
if k in ("why", "dependencies", "info"):
continue
- cmd_args.append(f"--{k}")
- cmd_args.append(f"{v}")
+ # Use "--argument=" format to avoid issues with if the value contains "-"
+ cmd_args.append(f"--{k}={v}")
create_package_template.main(cmd_args)