diff --git a/src/chocolatey.resources/helpers/ChocolateyTabExpansion.ps1 b/src/chocolatey.resources/helpers/ChocolateyTabExpansion.ps1
index e35b5a1f80..3313a684db 100644
--- a/src/chocolatey.resources/helpers/ChocolateyTabExpansion.ps1
+++ b/src/chocolatey.resources/helpers/ChocolateyTabExpansion.ps1
@@ -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"
}
diff --git a/src/chocolatey.sln.DotSettings b/src/chocolatey.sln.DotSettings
index cf657df444..a1e92e320c 100644
--- a/src/chocolatey.sln.DotSettings
+++ b/src/chocolatey.sln.DotSettings
@@ -1,5 +1,5 @@
- Copyright © 2017 - $CURRENT_YEAR$ Chocolatey Software, Inc
+ Copyright © 2017 - ${CurrentDate.Year} Chocolatey Software, Inc
Copyright © 2011 - 2017 RealDimensions Software, LLC
Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,4 +15,5 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+ True
diff --git a/src/chocolatey.tests/infrastructure.app/commands/ChocolateyExportCommandSpecs.cs b/src/chocolatey.tests/infrastructure.app/commands/ChocolateyExportCommandSpecs.cs
index 7455ce198f..cb23b0d478 100644
--- a/src/chocolatey.tests/infrastructure.app/commands/ChocolateyExportCommandSpecs.cs
+++ b/src/chocolatey.tests/infrastructure.app/commands/ChocolateyExportCommandSpecs.cs
@@ -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
diff --git a/src/chocolatey/infrastructure.app/commands/ChocolateyExportCommand.cs b/src/chocolatey/infrastructure.app/commands/ChocolateyExportCommand.cs
index 8e06c80282..cd82c92fec 100644
--- a/src/chocolatey/infrastructure.app/commands/ChocolateyExportCommand.cs
+++ b/src/chocolatey/infrastructure.app/commands/ChocolateyExportCommand.cs
@@ -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)
;
}
@@ -108,6 +111,7 @@ choco export []
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'""
@@ -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)
@@ -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();
}
diff --git a/src/chocolatey/infrastructure.app/configuration/ChocolateyConfiguration.cs b/src/chocolatey/infrastructure.app/configuration/ChocolateyConfiguration.cs
index cf9c6864bf..249be6d1db 100644
--- a/src/chocolatey/infrastructure.app/configuration/ChocolateyConfiguration.cs
+++ b/src/chocolatey/infrastructure.app/configuration/ChocolateyConfiguration.cs
@@ -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; }
}