Add an Environment Variable 'refresh' before installing package
Some packages, like RabbitMQ in the Chocolatey Repo, can have their installation customized based on Environment Variables (questionable but common method in *nix environment, and ported applications).
When using DSC and setting variables via the Environment resource (which, btw does not support [EnvironmentVariableTarget]), you'd need to restart before being able to install such package. Would it be possible to add a refresh Environment variable to the process that runs the install-package?
Would you consider a PR with the above?
Here's what the resulting configuration could look like:
Environment RMQBase {
Ensure = 'Present'
Name = 'RABBITMQ_BASE'
Value = $Node.RabbitMQBase
}
Environment ErlangHome {
Ensure = 'Present'
Name = 'ERLANG_HOME'
Value = 'C:\Program Files\erl8.0'
}
PackageManagement RabbitMQ
{
Ensure = 'present'
Name = 'RabbitMQ'
Source = 'Chocolatey'
DependsOn = '[Environment]ErlangHome'
}
The workarounds atm are: restarting, wait for next run, hack by killing session and restarting it, create custom PackageManagement resource to add the functionality...
By the way, the core functionality should probably be provided by PackageManagement module (as in, not the DSC resource), or the Chocolatey provider. I believe this behaviour has been fixed in Chocolatey v9.10 (issue 664), but I believe we're still waiting for the full re-work of the Chocolatey provider.
@gaelcolas. We welcome contributions from the community, i.e., accept PR. You are right. We do not have OneGet-Chocolatey provider yet.
I talked with @grayzu about this, and I'm not sure about how to implement such refresh in the LCM, but would be happy to submit a PR if given a bit guidance.
This issue was moved to OneGet/oneget#255