Exemple #1
0
        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);
                }
            }
        }
Exemple #2
0
        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;
 }
Exemple #4
0
        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);
        }