diff --git a/.gitignore b/.gitignore
index 37337f7c..22afc426 100644
--- a/.gitignore
+++ b/.gitignore
@@ -255,3 +255,4 @@ Tests/**/TestResult*.xml
/Tests/A1Test/
/Tests/**/Logs/
/Tests/CK.Env.Tests/UniverseZips/
+/CodeCakeBuilder/MemoryKey.*.txt
diff --git a/CK.Artifact.Model/CK.Artifact.Model.csproj b/CK.Artifact.Model/CK.Artifact.Model.csproj
index bd20e287..46811b02 100644
--- a/CK.Artifact.Model/CK.Artifact.Model.csproj
+++ b/CK.Artifact.Model/CK.Artifact.Model.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/CK.Env.Artifact.NuGet/CK.Env.Artifact.NuGet.csproj b/CK.Env.Artifact.NuGet/CK.Env.Artifact.NuGet.csproj
index 92a79aaa..a552c6a0 100644
--- a/CK.Env.Artifact.NuGet/CK.Env.Artifact.NuGet.csproj
+++ b/CK.Env.Artifact.NuGet/CK.Env.Artifact.NuGet.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/CK.Env.Command/CK.Env.Command.csproj b/CK.Env.Command/CK.Env.Command.csproj
index 239bb8ca..34f150e9 100644
--- a/CK.Env.Command/CK.Env.Command.csproj
+++ b/CK.Env.Command/CK.Env.Command.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/CK.Env.DependencyModel/CK.Env.DependencyModel.csproj b/CK.Env.DependencyModel/CK.Env.DependencyModel.csproj
index 51238b5d..392abfbb 100644
--- a/CK.Env.DependencyModel/CK.Env.DependencyModel.csproj
+++ b/CK.Env.DependencyModel/CK.Env.DependencyModel.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/CK.Env.Sys/CK.Env.Sys.csproj b/CK.Env.Sys/CK.Env.Sys.csproj
index 52d59ef6..f18e689f 100644
--- a/CK.Env.Sys/CK.Env.Sys.csproj
+++ b/CK.Env.Sys/CK.Env.Sys.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/CK.Xml.Linq.Extension/CK.Xml.Linq.Extension.csproj b/CK.Xml.Linq.Extension/CK.Xml.Linq.Extension.csproj
index 239bb8ca..34f150e9 100644
--- a/CK.Xml.Linq.Extension/CK.Xml.Linq.Extension.csproj
+++ b/CK.Xml.Linq.Extension/CK.Xml.Linq.Extension.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/CKli/Program.cs b/CKli/Program.cs
index 27256c4b..919a568f 100644
--- a/CKli/Program.cs
+++ b/CKli/Program.cs
@@ -220,7 +220,11 @@ string FirstPadding( int paddingSize, string sourceProviderName, bool missing )
{
bool provided = !string.IsNullOrWhiteSpace( sourceProviderName );
if( missing && provided ) throw new InvalidOperationException( "Cannot be both missing and provided" );
- if( missing ) sourceProviderName = "Missing";
+ if( missing )
+ {
+ sourceProviderName = "Missing";
+ provided = true;
+ }
return provided
? $"[{sourceProviderName}]" + new string( ' ', paddingSize - sourceProviderName.Length )
@@ -261,7 +265,7 @@ void RightArrow()
foreach( var k in v.KeyStore.Infos )
{
if( k.SuperKey != null ) continue;
- Console.ForegroundColor = k.IsSecretAvailable ? (!string.IsNullOrWhiteSpace( k.SourceProviderName ) ? ConsoleColor.Blue : ConsoleColor.Green) : ConsoleColor.Red;
+ Console.ForegroundColor = k.IsSecretAvailable ? (!string.IsNullOrWhiteSpace( k.SourceProviderName ) ? ConsoleColor.Cyan : ConsoleColor.Green) : ConsoleColor.Red;
Console.Write( FirstPadding( sourceNameMaxLength, k.SourceProviderName, !k.IsSecretAvailable ) );
WhitePipe();
Console.WriteLine( k.Name );
@@ -277,7 +281,7 @@ void RightArrow()
{
if( sub.IsSecretAvailable )
{
- Console.ForegroundColor = displayedAvailable ? (!string.IsNullOrWhiteSpace( sub.SourceProviderName ) ? ConsoleColor.Blue : ConsoleColor.DarkGreen) : ConsoleColor.Green;
+ Console.ForegroundColor = displayedAvailable ? (!string.IsNullOrWhiteSpace( sub.SourceProviderName ) ? ConsoleColor.Cyan : ConsoleColor.DarkGreen) : ConsoleColor.Green;
displayedAvailable = true;
}
else
diff --git a/CodeCakeBuilder/CodeCakeBuilder.csproj b/CodeCakeBuilder/CodeCakeBuilder.csproj
index 770e5c9d..47f54dae 100644
--- a/CodeCakeBuilder/CodeCakeBuilder.csproj
+++ b/CodeCakeBuilder/CodeCakeBuilder.csproj
@@ -1,4 +1,4 @@
-
+
netcoreapp2.1
@@ -11,12 +11,12 @@
-
-
+
+
-
+
diff --git a/Plugins/CK.Env.Plugin.CKSetup/CK.Env.Plugin.CKSetup.csproj b/Plugins/CK.Env.Plugin.CKSetup/CK.Env.Plugin.CKSetup.csproj
index df35d3be..e02c01ae 100644
--- a/Plugins/CK.Env.Plugin.CKSetup/CK.Env.Plugin.CKSetup.csproj
+++ b/Plugins/CK.Env.Plugin.CKSetup/CK.Env.Plugin.CKSetup.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMAzureRepository.cs b/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMAzureRepository.cs
index e0758c99..ddfba0e4 100644
--- a/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMAzureRepository.cs
+++ b/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMAzureRepository.cs
@@ -58,9 +58,10 @@ class NPMAzureRepository : NPMRepositoryBase, INPMAzureRepository
///
public override string SecretKeyName => AzureDevOpsAPIHelper.GetSecretKeyName( Organization );
- protected override Registry CreateRegistry( IActivityMonitor m )
+ protected override Registry CreateRegistry( IActivityMonitor m, bool throwOnError )
{
- string pat = ResolveSecret( m, true );
+ string pat = ResolveSecret( m, throwOnError );
+ if( string.IsNullOrWhiteSpace( pat ) ) return null;
return new Registry( Client.HttpClient, "CKli", pat, new Uri( Url ) );
}
diff --git a/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMClient.cs b/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMClient.cs
index ee817ba5..4d6c9666 100644
--- a/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMClient.cs
+++ b/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMClient.cs
@@ -114,8 +114,8 @@ public IArtifactRepository CreateRepository( in XElementReader r )
return new NPMFeed( scope, url, creds, () =>
{
Registry registry =
- repositories.OfType().FirstOrDefault( repo => repo.Scope == scope )?.GetRegistry( m )
- ?? repositories.OfType().FirstOrDefault( repo => repo.Url.Equals( url, StringComparison.OrdinalIgnoreCase ) )?.GetRegistry( m );
+ repositories.OfType().FirstOrDefault( repo => repo.Scope == scope )?.GetRegistry( m, false )
+ ?? repositories.OfType().FirstOrDefault( repo => repo.Url.Equals( url, StringComparison.OrdinalIgnoreCase ) )?.GetRegistry( m, false );
if( registry != null ) return registry;
string secret = creds.IsSecretKeyName ?
diff --git a/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMRepositoryBase.cs b/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMRepositoryBase.cs
index c84c8aec..370a6171 100644
--- a/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMRepositoryBase.cs
+++ b/Plugins/CK.Env.Plugin.NPM/ArtifactRepository/NPMRepositoryBase.cs
@@ -63,16 +63,17 @@ abstract class NPMRepositoryBase
public bool HandleArtifactType( in ArtifactType artifactType ) => artifactType == NPMClient.NPMType;
///
- /// Resolves the target NPM registry. Never null.
+ /// Resolves the target NPM registry.
///
- public Registry GetRegistry( IActivityMonitor m ) => _registry ?? (_registry = CreateRegistry( m ));
+ public Registry GetRegistry( IActivityMonitor m, bool throwOnError = true ) => _registry ?? (_registry = CreateRegistry( m, throwOnError ));
///
- /// Creates the registry or throws on error.
+ /// Creates the registry.
///
/// The monitor to use.
+ /// If true, throw when the cannot be instantied.
/// The initialized registry.
- protected abstract Registry CreateRegistry( IActivityMonitor m );
+ protected abstract Registry CreateRegistry( IActivityMonitor m, bool throwOnError );
///
/// Overridden to return the string.
@@ -111,7 +112,7 @@ public virtual string ResolveSecret( IActivityMonitor m, bool throwOnEmpty = fal
/// True if found, false otherwise.
public virtual Task ExistsAsync( IActivityMonitor m, string packageId, SVersion version )
{
- return GetRegistry( m ).ExistAsync( m, packageId, version );
+ return GetRegistry( m, true ).ExistAsync( m, packageId, version );
}
///
@@ -129,7 +130,7 @@ async Task PushPackagesAsync( IActivityMonitor m, IEnumerable();
foreach( LocalNPMPackageFile file in files )
{
- if( await GetRegistry( m ).ExistAsync( m, file.Instance.Artifact.Name, file.Instance.Version ) )
+ if( await GetRegistry( m, true ).ExistAsync( m, file.Instance.Artifact.Name, file.Instance.Version ) )
{
m.Info( $"Package '{file.Instance}' already in '{ToString()}'. Push skipped." );
skipped.Add( file );
@@ -139,7 +140,7 @@ async Task PushPackagesAsync( IActivityMonitor m, IEnumerable PushPackagesAsync( IActivityMonitor m, IEnumerable
public bool UsePassword { get; }
- protected override Registry CreateRegistry( IActivityMonitor m )
+ protected override Registry CreateRegistry( IActivityMonitor m, bool throwOnError )
{
var u = new Uri( Url );
+ string secret = ResolveSecret( m, throwOnError );
+ if( secret == null ) return null;
return UsePassword
- ? new Registry( Client.HttpClient, "CKli", ResolveSecret( m, true ), u )
- : new Registry( Client.HttpClient, ResolveSecret( m, true ), u );
+ ? new Registry( Client.HttpClient, "CKli", secret, u )
+ : new Registry( Client.HttpClient, secret, u );
}
}
}
diff --git a/Plugins/CK.Env.Plugin.NPM/Registry.cs b/Plugins/CK.Env.Plugin.NPM/Registry.cs
index f8a5a0bf..ccf85905 100644
--- a/Plugins/CK.Env.Plugin.NPM/Registry.cs
+++ b/Plugins/CK.Env.Plugin.NPM/Registry.cs
@@ -417,7 +417,7 @@ async Task LogErrors( IActivityMonitor m, HttpResponseMessage res )
}
else
{
- m.Error( "Unable to authenticate, need: " + string.Join( ",", auth ) );
+ m.Error( "Unable to authenticate, need: " + string.Join( ", ", auth ) );
}
}
else
diff --git a/Tests/CK.Env.Artifact.Tests/CK.Env.Artifact.Tests.csproj b/Tests/CK.Env.Artifact.Tests/CK.Env.Artifact.Tests.csproj
index f65c0b3a..fd16845e 100644
--- a/Tests/CK.Env.Artifact.Tests/CK.Env.Artifact.Tests.csproj
+++ b/Tests/CK.Env.Artifact.Tests/CK.Env.Artifact.Tests.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/Tests/CK.Env.FileSystem.Tests/CK.Env.FileSystem.Tests.csproj b/Tests/CK.Env.FileSystem.Tests/CK.Env.FileSystem.Tests.csproj
index e1df0cb6..ded447c4 100644
--- a/Tests/CK.Env.FileSystem.Tests/CK.Env.FileSystem.Tests.csproj
+++ b/Tests/CK.Env.FileSystem.Tests/CK.Env.FileSystem.Tests.csproj
@@ -1,7 +1,7 @@
-
+
- netcoreapp2.2
+ netcoreapp2.1
false
@@ -9,7 +9,7 @@
-
+
diff --git a/Tests/CK.Env.MSBuildSln.Tests/CK.Env.MSBuildSln.Tests.csproj b/Tests/CK.Env.MSBuildSln.Tests/CK.Env.MSBuildSln.Tests.csproj
index c44d50d1..614bcd76 100644
--- a/Tests/CK.Env.MSBuildSln.Tests/CK.Env.MSBuildSln.Tests.csproj
+++ b/Tests/CK.Env.MSBuildSln.Tests/CK.Env.MSBuildSln.Tests.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/Tests/CK.Env.Tests/CK.Env.Tests.csproj b/Tests/CK.Env.Tests/CK.Env.Tests.csproj
index e4e9e41d..c5b7d05e 100644
--- a/Tests/CK.Env.Tests/CK.Env.Tests.csproj
+++ b/Tests/CK.Env.Tests/CK.Env.Tests.csproj
@@ -6,7 +6,7 @@
False
-
+
diff --git a/Tests/CK.Env.XTyping.Tests/CK.Env.XTyping.Tests.csproj b/Tests/CK.Env.XTyping.Tests/CK.Env.XTyping.Tests.csproj
index 748eaaef..15534f35 100644
--- a/Tests/CK.Env.XTyping.Tests/CK.Env.XTyping.Tests.csproj
+++ b/Tests/CK.Env.XTyping.Tests/CK.Env.XTyping.Tests.csproj
@@ -1,7 +1,7 @@
-
+
- netcoreapp2.2
+ netcoreapp2.1
false
@@ -10,7 +10,7 @@
-
+
diff --git a/Tests/CK.SimpleKeyVault.Tests/CK.SimpleKeyVault.Tests.csproj b/Tests/CK.SimpleKeyVault.Tests/CK.SimpleKeyVault.Tests.csproj
index 80d39981..464796e6 100644
--- a/Tests/CK.SimpleKeyVault.Tests/CK.SimpleKeyVault.Tests.csproj
+++ b/Tests/CK.SimpleKeyVault.Tests/CK.SimpleKeyVault.Tests.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/Tests/CK.Xml.Linq.Extension.Tests/CK.Xml.Linq.Extension.Tests.csproj b/Tests/CK.Xml.Linq.Extension.Tests/CK.Xml.Linq.Extension.Tests.csproj
index 38ed82a3..6cb2dd42 100644
--- a/Tests/CK.Xml.Linq.Extension.Tests/CK.Xml.Linq.Extension.Tests.csproj
+++ b/Tests/CK.Xml.Linq.Extension.Tests/CK.Xml.Linq.Extension.Tests.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/Tests/Npm.Net.Tests/Npm.Net.Tests.csproj b/Tests/Npm.Net.Tests/Npm.Net.Tests.csproj
index fe1c791b..7dcfe779 100644
--- a/Tests/Npm.Net.Tests/Npm.Net.Tests.csproj
+++ b/Tests/Npm.Net.Tests/Npm.Net.Tests.csproj
@@ -11,7 +11,7 @@
-
+