Skip to content

Commit

Permalink
(chocolatey#2603) Export pin status
Browse files Browse the repository at this point in the history
This adds the ability for the export command to include pins in the
exported file. They will be exported if --include-arguments is
specified, but can be excluded with --exclude-pins.
  • Loading branch information
TheCakeIsNaOH committed Jan 10, 2024
1 parent 25541d9 commit beab8e7
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ $commandOptions = @{
config = "--name='' --value=''"
feature = "--name=''"
apikey = "--source='' --api-key='' --remove"
export = "--include-version-numbers --output-file-path='' --include-remembered-arguments"
export = "--include-version-numbers --output-file-path='' --include-remembered-arguments --exclude-pins"
template = "--name=''"
cache = "--expired"
}
Expand Down
3 changes: 2 additions & 1 deletion src/chocolatey.sln.DotSettings
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeStyle/FileHeader/FileHeaderText/@EntryValue">Copyright © 2017 - $CURRENT_YEAR$ Chocolatey Software, Inc&#xD;
<s:String x:Key="/Default/CodeStyle/FileHeader/FileHeaderText/@EntryValue">Copyright © 2017 - ${CurrentDate.Year} Chocolatey Software, Inc&#xD;
Copyright © 2011 - 2017 RealDimensions Software, LLC&#xD;
&#xD;
Licensed under the Apache License, Version 2.0 (the "License");&#xD;
Expand All @@ -15,4 +15,5 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&#xD;
See the License for the specific language governing permissions and&#xD;
limitations under the License.&#xD;
</s:String>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EFeature_002EServices_002ECodeCleanup_002EFileHeader_002EFileHeaderSettingsMigrate/@EntryIndexedValue">True</s:Boolean>
</wpf:ResourceDictionary>
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,12 @@ public void Should_add_include_remembered_arguments_to_the_option_set()
{
_optionSet.Contains("include-remembered-arguments").Should().BeTrue();
}

[Fact]
public void Should_add_exclude_pins_to_the_option_set()
{
_optionSet.Contains("exclude-pins").Should().BeTrue();
}
}

public class When_handling_additional_argument_parsing : ChocolateyExportCommandSpecsBase
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ public void ConfigureArgumentParser(OptionSet optionSet, ChocolateyConfiguration
.Add("include-arguments|include-remembered-arguments",
"Include Remembered Arguments - controls whether or not remembered arguments for each package appear in generated file. Defaults to false. Available in 2.3.0+",
option => configuration.ExportCommand.IncludeRememberedPackageArguments = option != null)
.Add("exclude-pins",
"Exclude Pins - controls whether or not pins are included. Only applies if remembered arguments are exported. Defaults to false. Available in 2.4.0+",
option => configuration.ExportCommand.ExcludePins = option != null)
;
}

Expand Down Expand Up @@ -108,6 +111,7 @@ choco export [<options/switches>]
choco export
choco export --include-version-numbers
choco export --include-version-numbers --include-remembered-arguments
choco export --include-remembered-arguments --exclude-pins
choco export ""'c:\temp\packages.config'""
choco export ""'c:\temp\packages.config'"" --include-version-numbers
choco export -o=""'c:\temp\packages.config'""
Expand Down Expand Up @@ -145,7 +149,12 @@ public bool MayRequireAdminAccess()

public void DryRun(ChocolateyConfiguration configuration)
{
this.Log().Info("Export would have been with options: {0} Output File Path={1}{0} Include Version Numbers:{2}{0} Include Remembered Arguments: {3}".FormatWith(Environment.NewLine, configuration.ExportCommand.OutputFilePath, configuration.ExportCommand.IncludeVersionNumbers, configuration.ExportCommand.IncludeRememberedPackageArguments));
this.Log().Info("Export would have been with options: {0} Output File Path={1}{0} Include Version Numbers:{2}{0} Include Remembered Arguments: {3}{0} Exclude Pins: {4}".FormatWith(
Environment.NewLine,
configuration.ExportCommand.OutputFilePath,
configuration.ExportCommand.IncludeVersionNumbers,
configuration.ExportCommand.IncludeRememberedPackageArguments,
configuration.ExportCommand.ExcludePins));
}

public void Run(ChocolateyConfiguration configuration)
Expand Down Expand Up @@ -207,6 +216,11 @@ public void Run(ChocolateyConfiguration configuration)
// if (configuration.Features.FailOnStandardError) packageElement.FailOnStderr = true;
// if (!configuration.Features.UsePowerShellHost) packageElement.UseSystemPowershell = true;

if (!configuration.ExportCommand.ExcludePins && pkgInfo.IsPinned)
{
xw.WriteAttributeString("pinPackage", "true");
}

// Make sure to reset the configuration so as to be able to parse the next set of remembered arguments
configuration.RevertChanges();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -719,6 +719,7 @@ public sealed class ExportCommandConfiguration
{
public bool IncludeVersionNumbers { get; set; }
public bool IncludeRememberedPackageArguments { get; set; }
public bool ExcludePins { get; set; }

public string OutputFilePath { get; set; }
}
Expand Down

0 comments on commit beab8e7

Please sign in to comment.