// Copyright © Microsoft Corporation. // This source file is subject to the Microsoft Permissive License. // See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx. // All other rights reserved. using System; using System.IO; using System.Reflection; using System.Xml.XPath; namespace Microsoft.Ddue.Tools.CommandLine { public static class ConsoleApplication { public static XPathDocument GetConfigurationFile() { return (GetConfigurationFile(Assembly.GetCallingAssembly().Location + ".config")); } public static XPathDocument GetConfigurationFile(string file) { return (new XPathDocument(file)); } public static string[] GetFiles(string filePattern) { // get the full path to the relevent directory string directoryPath = Path.GetDirectoryName(filePattern); if ((directoryPath == null) || (directoryPath.Length == 0)) directoryPath = Environment.CurrentDirectory; directoryPath = Path.GetFullPath(directoryPath); // get the file name, which may contain wildcards string filePath = Path.GetFileName(filePattern); // look up the files and load them string[] files = Directory.GetFiles(directoryPath, filePath); return (files); } // Write the name, version, and copyright information of the calling assembly public static void WriteBanner() { Assembly application = Assembly.GetCallingAssembly(); AssemblyName applicationData = application.GetName(); Console.WriteLine("{0} (v{1})", applicationData.Name, applicationData.Version); Object[] copyrightAttributes = application.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), true); foreach (AssemblyCopyrightAttribute copyrightAttribute in copyrightAttributes) { Console.WriteLine(copyrightAttribute.Copyright); } } public static void WriteMessage(LogLevel level, string message) { Console.WriteLine("{0}: {1}", level, message); } public static void WriteMessage(LogLevel level, string format, params object[] arg) { Console.Write("{0}: ", level); Console.WriteLine(format, arg); } } }