PowerShell / PackageManagementProviderResource

Modules with DSC resources for the PackageManagement(aka OneGet) providers.
MIT License
37 stars 24 forks source link

Add an Environment Variable 'refresh' before installing package #29

Open gaelcolas opened 7 years ago

gaelcolas commented 7 years ago

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...

gaelcolas commented 7 years ago

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.

jianyunt commented 7 years ago

@gaelcolas. We welcome contributions from the community, i.e., accept PR. You are right. We do not have OneGet-Chocolatey provider yet.

gaelcolas commented 7 years ago

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.

brywang-msft commented 7 years ago

This issue was moved to OneGet/oneget#255