From 90194a614aaa2646e39b5280199c0c3b69e49de9 Mon Sep 17 00:00:00 2001 From: Chris Blyth Date: Thu, 28 May 2020 14:52:42 +0100 Subject: [PATCH] Add simplify interactive & update single package --- README.md | 2 ++ src/PaketChain/Runner.cs | 45 +++++++++++++++++++++--------------- src/PaketChain/RunnerArgs.cs | 6 +++++ 3 files changed, 35 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 05c7c8e..354ef36 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Usage: PaketChain [options] Options: -d|--dir The path to a root of a repository, defaults to current directory if not provided (Note: should be in quotes) -u|--update Run a paket update + -up|--update-package Run a paket update for a single package -ua|--update-args Args to pass to paket update (Note: should be in quotes) -i|--install Run a paket install -ia|--install-args Args to pass to paket install (Note: should be in quotes) @@ -37,6 +38,7 @@ Options: -r|--restore Run a paket restore -ra|--restore-args Args to pass to paket restore (Note: should be in quotes) -s|--simplify Run a paket simplify + -si|--simplify-interactive Run a paket simplify interactive mode -sa|--simplify-args Args to pass to paket simplify (Note: should be in quotes) -rd|--redirects Add args for redirects on install/update/add -ri|--reinstall Delete the lock file and create from scratch diff --git a/src/PaketChain/Runner.cs b/src/PaketChain/Runner.cs index 5cd445f..ff5aa71 100644 --- a/src/PaketChain/Runner.cs +++ b/src/PaketChain/Runner.cs @@ -264,30 +264,39 @@ private static void Reinstall(RunnerArgs runnerArgs, string rootDir) private static void PaketUpdate(RunnerArgs runnerArgs, CancellationToken cancellationToken, string rootDir, PaketInfo paketInfo, AdditionalArgs additionalArgs) { - if (runnerArgs.Update) + if ((!string.IsNullOrWhiteSpace(runnerArgs.UpdatePackage) || runnerArgs.Update) && runnerArgs.Reinstall) { - if (runnerArgs.Reinstall) - { - Console.WriteLine("Skipping Update as reinstall install newest versions"); - Console.WriteLine("-----------------------------------------------------"); - } - else - { - ConsoleHelper.RunPaketCommand(rootDir, paketInfo.PaketPath, paketInfo.ToolType, "update", $"{additionalArgs.PaketRedirectArgs} {additionalArgs.PaketForceArgs} {additionalArgs.PaketVerboseArgs} {runnerArgs.UpdateArgs}", cancellationToken); - Console.WriteLine("-----------------------------------------------------"); - } + Console.WriteLine("Skipping Update as reinstall install newest versions"); + Console.WriteLine("-----------------------------------------------------"); + return; + } + + if (!string.IsNullOrWhiteSpace(runnerArgs.UpdatePackage)) + { + ConsoleHelper.RunPaketCommand(rootDir, paketInfo.PaketPath, paketInfo.ToolType, "update", $"{runnerArgs.UpdatePackage} {additionalArgs.PaketRedirectArgs} {additionalArgs.PaketForceArgs} {additionalArgs.PaketVerboseArgs} {runnerArgs.UpdateArgs}", cancellationToken); + Console.WriteLine("-----------------------------------------------------"); + } + else if (runnerArgs.Update) + { + ConsoleHelper.RunPaketCommand(rootDir, paketInfo.PaketPath, paketInfo.ToolType, "update", $"{additionalArgs.PaketRedirectArgs} {additionalArgs.PaketForceArgs} {additionalArgs.PaketVerboseArgs} {runnerArgs.UpdateArgs}", cancellationToken); + Console.WriteLine("-----------------------------------------------------"); } } private static void PaketSimplify(RunnerArgs runnerArgs, CancellationToken cancellationToken, string rootDir, PaketInfo paketInfo, AdditionalArgs additionalArgs) { - if (runnerArgs.Simplify) + if ((runnerArgs.SimplifyInteractive || runnerArgs.Simplify) && runnerArgs.Reinstall) { - if (runnerArgs.Reinstall) - { - PaketInstall(runnerArgs, cancellationToken, rootDir, paketInfo, additionalArgs); - } + PaketInstall(runnerArgs, cancellationToken, rootDir, paketInfo, additionalArgs); + } + if (runnerArgs.SimplifyInteractive) + { + ConsoleHelper.RunPaketCommand(rootDir, paketInfo.PaketPath, paketInfo.ToolType, "simplify", $"--interactive {additionalArgs.PaketVerboseArgs} {runnerArgs.SimplifyArgs}", cancellationToken); + Console.WriteLine("-----------------------------------------------------"); + } + else if (runnerArgs.Simplify) + { ConsoleHelper.RunPaketCommand(rootDir, paketInfo.PaketPath, paketInfo.ToolType, "simplify", $"{additionalArgs.PaketVerboseArgs} {runnerArgs.SimplifyArgs}", cancellationToken); Console.WriteLine("-----------------------------------------------------"); } @@ -295,7 +304,7 @@ private static void PaketSimplify(RunnerArgs runnerArgs, CancellationToken cance private static void PaketInstall(RunnerArgs runnerArgs, CancellationToken cancellationToken, string rootDir, PaketInfo paketInfo, AdditionalArgs additionalArgs) { - if (runnerArgs.Install || runnerArgs.Reinstall || runnerArgs.Simplify) + if (runnerArgs.Install || runnerArgs.Reinstall || runnerArgs.Simplify || runnerArgs.SimplifyInteractive) { ConsoleHelper.RunPaketCommand(rootDir, paketInfo.PaketPath, paketInfo.ToolType, "install", $"{additionalArgs.PaketRedirectArgs} {additionalArgs.PaketForceArgs} {additionalArgs.PaketVerboseArgs} {runnerArgs.InstallArgs}", cancellationToken); Console.WriteLine("-----------------------------------------------------"); @@ -306,7 +315,7 @@ private static void PaketRestore(RunnerArgs runnerArgs, CancellationToken cancel { if (runnerArgs.Restore) { - if (runnerArgs.Install || runnerArgs.Reinstall || runnerArgs.Simplify) + if (runnerArgs.Install || runnerArgs.Reinstall || runnerArgs.Simplify || runnerArgs.SimplifyInteractive) { Console.WriteLine("Skipping Restore as already installed"); Console.WriteLine("-----------------------------------------------------"); diff --git a/src/PaketChain/RunnerArgs.cs b/src/PaketChain/RunnerArgs.cs index d376cc6..7fbbffb 100644 --- a/src/PaketChain/RunnerArgs.cs +++ b/src/PaketChain/RunnerArgs.cs @@ -14,6 +14,9 @@ internal class RunnerArgs [Option("-u|--update", "Run a paket update", CommandOptionType.NoValue)] public bool Update { get; } + [Option("-up|--update-package ", "Run a paket update for a single package", CommandOptionType.SingleValue)] + public string UpdatePackage { get; } + [Option("-ua|--update-args ", "Args to pass to paket update (Note: should be in quotes)", CommandOptionType.SingleValue)] public string UpdateArgs { get; } @@ -56,6 +59,9 @@ internal class RunnerArgs [Option("-s|--simplify", "Run a paket simplify", CommandOptionType.NoValue)] public bool Simplify { get; } + [Option("-si|--simplify-interactive", "Run a paket simplify interactive mode", CommandOptionType.NoValue)] + public bool SimplifyInteractive { get; } + [Option("-sa|--simplify-args ", "Args to pass to paket simplify (Note: should be in quotes)", CommandOptionType.SingleValue)] public string SimplifyArgs { get; }