VM-Packages icon indicating copy to clipboard operation
VM-Packages copied to clipboard

Enable Param Passing to Dependencies

Open MalwareMechanic opened this issue 2 years ago • 2 comments

Overview

Currently, dependencies install using default everything. However, chocolatey allows passing parameters to dependencies by coupling two command-line arguments: --params-global and --params (syntax --params '/PARAM1:value1 /PARAMFLAG').

As an example, say fake-package.vm had a dependency that could be configured to use a specific port, installation path, and verbosity flag, we would pass these parameters as below:

choco install fake-package.vm --params-global --params '/Port:82 /InstallationPath:""C:\blah\folder with space"" /DEBUG'

To enable this, we need to do the following:

  • [ ] Update config.xml with dependency parameters
    • E.g., <package name="cygwin.vm" params="/InstallDir:%RAW_TOOLS_DIR%\Cygwin"/>
  • [ ] Update flarevm.installer.vm to check the config.xml for parameters and pass them accordingly during the install call
  • [ ] Update each package that uses dependency parameters (mainly aimed at metapackages) to use Get-PackageParameters and handle any parameters as necessary (e.g., installing to a non-default dependency location specified by the "shim path" we have users provide)

Resources

  • https://docs.chocolatey.org/en-us/guides/create/parse-packageparameters-argument
  • https://docs.chocolatey.org/en-us/create/functions/get-packageparameters

MalwareMechanic avatar Dec 01 '22 16:12 MalwareMechanic

Also need to consider --install-arguments, which differs from "package" specific parameters -- it's used to instruct native installers.

There is also the concept of "Install Arguments", or silent arguments you can pass through transparently to the native installer. This is more of a way for a package consumer to override the default silent arguments that are passed to the native installer.

MalwareMechanic avatar Dec 10 '22 16:12 MalwareMechanic

Is there a concrete package for which you would like to use this feature @MalwareMechanic? Otherwise I think we shouldn't implement this feature.

Ana06 avatar Jul 17 '24 14:07 Ana06