public override void Execute() { if (ConfigurationMetadata.PackageId == Metadata.PackageId) { // create NEW Genyman configuration file Log.Information("Generating a new genyman generator solution"); ProcessHandlebarTemplates(); } else { var packageId = ConfigurationMetadata.PackageId; var resolvePackageResult = DotNetRunner.ResolvePackage(packageId, ConfigurationMetadata.NugetSource, Update, ConfigurationMetadata.Version); if (resolvePackageResult.success) { var generator = new PackageGenerator(); generator.InputFileName = InputFileName; generator.PackageId = resolvePackageResult.packageId; generator.Execute(Args); } } }
protected override int Execute() { base.Execute(); if (FromCli && !string.IsNullOrEmpty(PackageIdArgument.ParsedValue)) { var packageId = PackageIdArgument.ParsedValue; var resolvePackageResult = DotNetRunner.ResolvePackage(packageId, SourceOption.ParsedValue, UpdateOption.HasValue(), string.Empty); if (resolvePackageResult.success) { var program = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? Path.Combine(DotNetRunner.CliFolderPathCalculator.ToolsShimPath, resolvePackageResult.packageId) : resolvePackageResult.packageId; var run = ProcessRunner.Create(program) .IsGenerator() .WithArgument(Name); foreach (var option in Options) { if (option.HasValue()) { run.WithArgument("--" + option.LongName, option.Value()); } } run.Execute(false); return(1); } Log.Error($"Could not execute {Name} command for this packageId."); return(-1); } return(0); }
public DotNetRestorer(DotNetRunner dotNetRunner, IFileService fileSystem) { _dotNetRunner = dotNetRunner; _fileSystem = fileSystem; }
protected override int Execute() { base.Execute(); // find csproj var csproj = Directory.GetFiles(WorkingDirectory, "*.csproj", SearchOption.AllDirectories).FirstOrDefault(); if (csproj == null) { Log.Fatal($"Could not find .csproj in underlying folders of {WorkingDirectory}"); } // increase var addBuild = !(!BuildOption.HasValue() && (MajorOption.HasValue() || MinorOption.HasValue())); FluentMSBuild.Use(csproj).IncrementVersion(MajorOption.HasValue(), MinorOption.HasValue(), addBuild); // Creating temporary folder var tempFolder = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); Log.Debug($"Creating temp folder {tempFolder}"); Directory.CreateDirectory(tempFolder); Log.Information("Packing generator..."); DotNetRunner.Pack(tempFolder); var nupkg = Directory.GetFiles(tempFolder, "*.nupkg").FirstOrDefault(); var nupkgFile = new FileInfo(nupkg).Name; Log.Information($"Pushing generator {nupkgFile}"); var source = string.Empty; var apiKey = string.Empty; if (SourceOption.HasValue()) { source = SourceOption.ParsedValue.FromEnvironmentOrDefault(); if (string.IsNullOrEmpty(source)) { Log.Fatal("When specifying --source your need to add a valid source (--source https://{YourUrl})"); } } if (ApiKeyOption.HasValue()) { apiKey = ApiKeyOption.ParsedValue.FromEnvironmentOrDefault(); if (string.IsNullOrEmpty(apiKey)) { Log.Fatal("When specifying --apikey your need to add a valid api key (--apikey YourKey"); } } var nugetPush = DotNetRunner.NugetPush(nupkg, source, apiKey); if (nugetPush == 0) { Log.Information("Package was pushed"); DotNetRunner.InstallOrUpdateLocal(nupkgFile, tempFolder); Log.Information("Genyman generator was installed locally"); } else { Log.Information("Skipping local installation of Genyman generator - Nuget Failed"); } // Cleanup var files = Directory.GetFiles(tempFolder); foreach (var file in files) { Log.Debug($"Cleanup. Deleting file {file}"); File.Delete(file); } Log.Debug($"Cleanup. Deleting folder {tempFolder}"); Directory.Delete(tempFolder); return(0); }