Skip to content

Commit

Permalink
(#2829) Adds Basic choco license Command (WIP)
Browse files Browse the repository at this point in the history
  • Loading branch information
JPRuskin committed Oct 4, 2022
1 parent e35fe2b commit 1d9b57f
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/chocolatey/chocolatey.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@
</Compile>
<Compile Include="AssemblyExtensions.cs" />
<Compile Include="infrastructure.app\attributes\MultiServiceAttribute.cs" />
<Compile Include="infrastructure.app\commands\ChocolateyLicenseCommand.cs" />
<Compile Include="infrastructure.app\commands\ChocolateyTemplateCommand.cs" />
<Compile Include="infrastructure.app\commands\ChocolateyUpdateCommand.cs" />
<Compile Include="infrastructure.app\commands\ChocolateyVersionCommand.cs" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
// Copyright © 2017 - 2021 Chocolatey Software, Inc
// Copyright © 2011 - 2017 RealDimensions Software, LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
//
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// 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.

namespace chocolatey.infrastructure.app.commands
{
using chocolatey.infrastructure.app.attributes;
using chocolatey.infrastructure.app.configuration;
using chocolatey.infrastructure.commandline;
using chocolatey.infrastructure.commands;
using chocolatey.infrastructure.filesystem;
using chocolatey.infrastructure.licensing;
using chocolatey.infrastructure.logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

[CommandFor("license", "Retrieve or modify the Chocolatey License")]
class ChocolateyLicenseCommand : ICommand
{
public void configure_argument_parser(OptionSet optionSet, ChocolateyConfiguration configuration)
{
// We don't currently expect to have any arguments
return;
}

public void handle_additional_argument_parsing(IList<string> unparsedArguments, ChocolateyConfiguration configuration)
{
// We don't currently expect to have any additional arguments
return;
}

public void handle_validation(ChocolateyConfiguration configuration)
{
// We don't currently accept any arguments, so there is no validation
return;
}

public void help_message(ChocolateyConfiguration configuration)
{
this.Log().Info(ChocolateyLoggers.Important, "License Command");
this.Log().Info(@"
Chocolatey will do license things.
");
}

public bool may_require_admin_access()
{
return false;
}

public void noop(ChocolateyConfiguration configuration)
{
return;
}

public void run(ChocolateyConfiguration config)
{
var ourLicense = LicenseValidation.validate();

if (config.RegularOutput)
{
this.Log().Info("We have found a{0}valid license for Chocolatey {1}, which expires {2}".format_with((ourLicense.IsValid ? " " : "n in"), ourLicense.LicenseType, ourLicense.ExpirationDate));
this.Log().Info("Registered to: {0}".format_with(ourLicense.Name));
this.Log().Info("Expiration Date: {0} UTC".format_with(ourLicense.ExpirationDate));
this.Log().Info("License type: {0}".format_with(ourLicense.LicenseType));
this.Log().Info("Node Count: {0}".format_with("<COUNT GOES HERE>"));
}
else
{
// Name, LicenseType, ExpirationDate, NodeCount
this.Log().Info("{0}|{1}|{2}|{3}".format_with(ourLicense.Name, ourLicense.LicenseType, ourLicense.ExpirationDate, "0"));
}
}
}
}

0 comments on commit 1d9b57f

Please sign in to comment.