Configuration icon indicating copy to clipboard operation
Configuration copied to clipboard

The -Scope parameter for Export-Configuration has a parameterset (and it should not)

Open Jaykul opened this issue 9 years ago • 5 comments

We need to be able to specify a value for Export-Configuration -Scope regardless of ParameterSet (just like you can for Get-StoragePath).

Currently, it has it's ParameterSet to the ManualOverride set, so you can only use it when specifying the -Name and -Company by hand (as in the first example below).

I want all three of these to work:

Scenario: Specifying the scope when listing metadata
    Given a module with the name 'MyModule1' and the author 'MyCompany' with code like this
    """
    $Config = Import-Configuration -Company 'MyCompany' -Name MyModule1
    if(!$Config.ApiKey) {
        $Config =@{ ApiKey = "My Default API Key" }
        Export-Configuration $Config  -Company 'MyCompany' -Name MyModule1 -Scope Machine
    }
    """
    When the module is imported
    Then a settings file named Configuration.psd1 should exist in the Machine folder

Scenario: Specifying the scope when piping moduleinfo
    Given a module with the name 'MyModule1'
    When a user writes (something like) this
    """
    Get-Module MyModule1 | Export-Configuration @{ ApiKey = "MyApiKey" } -Scope Enterprise
    """
    Then a settings file named Configuration.psd1 should exist in the Enterprise folder

Scenario: Specifying the scope implicitly
    Given a module with the name 'MyModule1' and the author 'MyCompany' with code like this
    """
    function Set-ApiKey {
        param($ApiKey)
        $Config =@{ ApiKey = $ApiKey }
        Export-Configuration $Config -Scope Machine
    }
    """
   When I invoke Set-ApiKey "OurCorporateApiKey"
   Then a settings file named Configuration.psd1 should exist in the Machine folder

Jaykul avatar Dec 02 '16 19:12 Jaykul

If you remove the ManualOverride ParameterSet from Scope, all three of these Scenarios should pass. Even if you have the Company set to 'Unknown', you can still specify the AuthorName and it will successfully update the Config.

gerane avatar Dec 05 '16 17:12 gerane

I would love to PR this, but I see some development is happening off the master branch.

I see that Jaykul is actively working on the build process, and I'm getting nowhere with the build scripts as they exist in master.

Should I hold off? @Jaykul is it your intention to merge / deploy to the gallery any time soon?

fsackur avatar Jan 06 '21 20:01 fsackur

LOL. Yeah. I have a couple more pieces to do in the build (I'm working on a Script Analyzer action), and then I was thinking of trying to auto-publish builds of master ...

It's all a little mad. I made a new CI build in Github Actions because I was having weird problems with the Azure build (and I wanted to learn Actions anyway). ... and then the Github Action had the same problem.

It turned out it wasn't properly importing the new build output for some reason when it ran the tests. Fixed now, anyway.

Jaykul avatar Jan 07 '21 06:01 Jaykul

Ok, that stuff is done (enough). I still want to make some improvements, but the build is working and running tests and script analyzer, and it's merged to master. Thanks for your patience, @fsackur

Jaykul avatar Jan 19 '21 05:01 Jaykul

No, thank YOU. I'll pick this back up when my day job calms down a little.

fsackur avatar Jan 19 '21 09:01 fsackur