From 22ccac98ae74b9f3e51ce68cfe7ad27d5bcee0ea Mon Sep 17 00:00:00 2001 From: Leila Lali Date: Fri, 1 Sep 2017 12:21:30 -0700 Subject: [PATCH] creating one package which includes sqltoolsservice and credential service (#444) * creating one package which includes sqltoolsservice and credential service * adding logDir arg to credentials program --- build.cake | 20 ++++++++++++---- build.json | 1 + scripts/archiving.cake | 13 +++++----- src/Microsoft.SqlTools.Credentials/Program.cs | 9 ++++++- .../Utility/CommandOptions.cs | 24 +++++++++++++++++++ 5 files changed, 55 insertions(+), 12 deletions(-) diff --git a/build.cake b/build.cake index 78c359ec..76f9e7da 100644 --- a/build.cake +++ b/build.cake @@ -41,6 +41,7 @@ public class BuildPlan public string ArtifactsFolder { get; set; } public bool UseSystemDotNetPath { get; set; } public string DotNetFolder { get; set; } + public string PackageName { get; set; } public string DotNetInstallScriptURL { get; set; } public string DotNetChannel { get; set; } public string DotNetVersion { get; set; } @@ -313,6 +314,7 @@ Task("OnlyPublish") .IsDependentOn("CodeGen") .Does(() => { + var packageName = buildPlan.PackageName; foreach (var project in buildPlan.MainProjects) { var projectFolder = System.IO.Path.Combine(sourceFolder, project); @@ -320,7 +322,7 @@ Task("OnlyPublish") { foreach (var runtime in buildPlan.Rids) { - var outputFolder = System.IO.Path.Combine(publishFolder, project, runtime, framework); + var outputFolder = System.IO.Path.Combine(publishFolder, packageName, runtime, framework); var publishArguments = "publish"; if (!runtime.Equals("default")) { @@ -337,12 +339,20 @@ Task("OnlyPublish") { Run("install_name_tool", "-add_rpath /usr/local/opt/openssl/lib " + outputFolder + "/System.Security.Cryptography.Native.dylib"); } - if (requireArchive) - { - Package(runtime, framework, outputFolder, packageFolder, project.ToLower(), workingDirectory); - } } } + + if (requireArchive) + { + foreach (var framework in buildPlan.Frameworks) + { + foreach (var runtime in buildPlan.Rids) + { + var outputFolder = System.IO.Path.Combine(publishFolder, packageName, runtime, framework); + Package(runtime, framework, outputFolder, packageFolder, packageName, workingDirectory); + } + } + } CreateRunScript(System.IO.Path.Combine(publishFolder, project, "default"), scriptFolder); } }); diff --git a/build.json b/build.json index d061eaf3..d294bfee 100644 --- a/build.json +++ b/build.json @@ -6,6 +6,7 @@ "DotNetVersion": "1.0.0-preview2-003121", "BuildToolsFolder": ".tools", "ArtifactsFolder": "artifacts", + "PackageName": "Microsoft.SqlTools.ServiceLayer", "TestProjects": { "Microsoft.SqlTools.ServiceLayer.UnitTests": [ "netcoreapp2.0" diff --git a/scripts/archiving.cake b/scripts/archiving.cake index dc71358d..28dc95db 100644 --- a/scripts/archiving.cake +++ b/scripts/archiving.cake @@ -102,12 +102,13 @@ void CopyEulas(string runtime, string framework, string contentFolder, string pa "*.RTF", SearchOption.AllDirectories).ToList(); - foreach (var file in files) { - System.IO.File.Copy( - file, - System.IO.Path.Combine( - contentFolder, - System.IO.Path.GetFileName(file))); + foreach (var file in files) + { + var dest = System.IO.Path.Combine(contentFolder, System.IO.Path.GetFileName(file)); + if (!System.IO.File.Exists(dest)) + { + System.IO.File.Copy(file, dest); + } } } diff --git a/src/Microsoft.SqlTools.Credentials/Program.cs b/src/Microsoft.SqlTools.Credentials/Program.cs index 9f66db5e..93db0404 100644 --- a/src/Microsoft.SqlTools.Credentials/Program.cs +++ b/src/Microsoft.SqlTools.Credentials/Program.cs @@ -3,6 +3,7 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; +using System.IO; using Microsoft.SqlTools.Credentials.Utility; using Microsoft.SqlTools.ServiceLayer.SqlContext; using Microsoft.SqlTools.Utility; @@ -28,9 +29,15 @@ namespace Microsoft.SqlTools.Credentials return; } + string logFilePath = "credentials"; + if (!string.IsNullOrWhiteSpace(commandOptions.LoggingDirectory)) + { + logFilePath = Path.Combine(commandOptions.LoggingDirectory, logFilePath); + } + // turn on Verbose logging during early development // we need to switch to Normal when preparing for public preview - Logger.Initialize(minimumLogLevel: LogLevel.Verbose, isEnabled: commandOptions.EnableLogging); + Logger.Initialize(logFilePath, minimumLogLevel: LogLevel.Verbose, isEnabled: commandOptions.EnableLogging); Logger.Write(LogLevel.Normal, "Starting SqlTools Credentials Provider"); // set up the host details and profile paths diff --git a/src/Microsoft.SqlTools.Credentials/Utility/CommandOptions.cs b/src/Microsoft.SqlTools.Credentials/Utility/CommandOptions.cs index 6c66a49e..cae292f7 100644 --- a/src/Microsoft.SqlTools.Credentials/Utility/CommandOptions.cs +++ b/src/Microsoft.SqlTools.Credentials/Utility/CommandOptions.cs @@ -4,6 +4,7 @@ // using System; +using System.IO; namespace Microsoft.SqlTools.Credentials.Utility { @@ -26,11 +27,19 @@ namespace Microsoft.SqlTools.Credentials.Utility string arg = args[i]; if (arg.StartsWith("--") || arg.StartsWith("-")) { + if (arg.StartsWith("--")) + { + // Extracting arguments and properties + arg = arg.Substring(1).ToLowerInvariant(); + } switch (arg) { case "-enable-logging": EnableLogging = true; break; + case "-log-dir": + SetLoggingDirectory(args[++i]); + break; case "h": case "-help": ShouldExit = true; @@ -64,11 +73,26 @@ namespace Microsoft.SqlTools.Credentials.Utility /// public bool EnableLogging { get; private set; } + /// + /// Gets the directory where log files are output. + /// + public string LoggingDirectory { get; private set; } + /// /// Whether the program should exit immediately. Set to true when the usage is printed. /// public bool ShouldExit { get; private set; } + private void SetLoggingDirectory(string loggingDirectory) + { + if (string.IsNullOrWhiteSpace(loggingDirectory)) + { + return; + } + + this.LoggingDirectory = Path.GetFullPath(loggingDirectory); + } + /// /// Get the usage string describing command-line arguments for the program ///