Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit b80e4ffd authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

introduce new option to run vectocmd withou output (quiet)

parent f38f6dfb
Branches
Tags
No related merge requests found
...@@ -75,6 +75,7 @@ Description: ...@@ -75,6 +75,7 @@ Description:
-mod: write mod-data in addition to sum-data -mod: write mod-data in addition to sum-data
-1Hz: convert mod-data to 1Hz resolution -1Hz: convert mod-data to 1Hz resolution
-eng: switch to engineering mode (implies -mod) -eng: switch to engineering mode (implies -mod)
-q: quiet - disables console output unless verbose information is enabled
-v: Shows verbose information (errors and warnings will be displayed) -v: Shows verbose information (errors and warnings will be displayed)
-vv: Shows more verbose information (infos will be displayed) -vv: Shows more verbose information (infos will be displayed)
-vvv: Shows debug messages (slow!) -vvv: Shows debug messages (slow!)
...@@ -91,6 +92,8 @@ Examples: ...@@ -91,6 +92,8 @@ Examples:
"; ";
private static JobContainer _jobContainer; private static JobContainer _jobContainer;
private static bool _quiet;
private static bool _debugEnabled;
private static int Main(string[] args) private static int Main(string[] args)
{ {
...@@ -102,28 +105,31 @@ Examples: ...@@ -102,28 +105,31 @@ Examples:
return 0; return 0;
} }
if (args.Contains("-q")) {
_quiet = true;
}
// on -v: activate verbose console logger // on -v: activate verbose console logger
var logLevel = LogLevel.Fatal; var logLevel = LogLevel.Fatal;
// Fatal > Error > Warn > Info > Debug > Trace // Fatal > Error > Warn > Info > Debug > Trace
var debugEnabled = false;
if (args.Contains("-v")) { if (args.Contains("-v")) {
// display errors, warnings // display errors, warnings
logLevel = LogLevel.Warn; logLevel = LogLevel.Warn;
debugEnabled = true; _debugEnabled = true;
} else if (args.Contains("-vv")) { } else if (args.Contains("-vv")) {
// also display info // also display info
logLevel = LogLevel.Info; logLevel = LogLevel.Info;
debugEnabled = true; _debugEnabled = true;
} else if (args.Contains("-vvv")) { } else if (args.Contains("-vvv")) {
// display debug messages // display debug messages
logLevel = LogLevel.Debug; logLevel = LogLevel.Debug;
debugEnabled = true; _debugEnabled = true;
} else if (args.Contains("-vvvv")) { } else if (args.Contains("-vvvv")) {
// display everything! // display everything!
logLevel = LogLevel.Trace; logLevel = LogLevel.Trace;
debugEnabled = true; _debugEnabled = true;
} }
var config = LogManager.Configuration; var config = LogManager.Configuration;
...@@ -141,11 +147,12 @@ Examples: ...@@ -141,11 +147,12 @@ Examples:
} }
LogManager.Configuration = config; LogManager.Configuration = config;
if (args.Contains("-V") || debugEnabled) { if (args.Contains("-V") || _debugEnabled) {
ShowVersionInformation(); ShowVersionInformation();
} }
var fileList = args.Except(new[] { "-v", "-vv", "-vvv", "-vvvv", "-V", "-mod", "-eng", "-t", "-1Hz" }).ToArray(); var fileList =
args.Except(new[] { "-v", "-vv", "-vvv", "-vvvv", "-V", "-mod", "-eng", "-t", "-1Hz", "-q", "-act" }).ToArray();
var jobFiles = var jobFiles =
fileList.Where( fileList.Where(
f => f =>
...@@ -169,24 +176,21 @@ Examples: ...@@ -169,24 +176,21 @@ Examples:
var mode = ExecutionMode.Declaration; var mode = ExecutionMode.Declaration;
if (args.Contains("-eng")) { if (args.Contains("-eng")) {
mode = ExecutionMode.Engineering; mode = ExecutionMode.Engineering;
Console.ForegroundColor = ConsoleColor.White; WriteLine(@"Switching to Engineering Mode. Make sure the job-file is saved in engineering mode!",
Console.WriteLine(@"Switching to Engineering Mode. Make sure the job-file is saved in engineering mode!"); ConsoleColor.White);
Console.ResetColor();
} }
stopWatch.Start(); stopWatch.Start();
if (!jobFiles.Any()) { if (!jobFiles.Any()) {
Console.ForegroundColor = ConsoleColor.Red; WriteLine(@"No Job files found. Please restart the application with a valid '.vecto' file.", ConsoleColor.Red);
Console.WriteLine(@"No Job files found. Please restart the application with a valid '.vecto' file.");
Console.ResetColor();
return 1; return 1;
} }
DetectPlugins(); DetectPlugins();
var plugins = PluginRegistry.Instance.GetInputDataPlugins().ToArray(); var plugins = PluginRegistry.Instance.GetInputDataPlugins().ToArray();
foreach (var file in jobFiles) { foreach (var file in jobFiles) {
Console.WriteLine(@"Reading job: " + file); WriteLine(@"Reading job: " + file);
if (Path.GetExtension(file) == Constants.FileExtensions.VectoJobFile) { if (Path.GetExtension(file) == Constants.FileExtensions.VectoJobFile) {
var dataProvider = JSONInputDataFactory.ReadJsonJob(file); var dataProvider = JSONInputDataFactory.ReadJsonJob(file);
fileWriter = new FileOutputWriter(file); fileWriter = new FileOutputWriter(file);
...@@ -200,7 +204,7 @@ Examples: ...@@ -200,7 +204,7 @@ Examples:
var handled = false; var handled = false;
foreach (var plugin in plugins) { foreach (var plugin in plugins) {
if (!handled && plugin.Value.CanHandleJob(file)) { if (!handled && plugin.Value.CanHandleJob(file)) {
Console.WriteLine("using plugin: " + plugin.Value.Name); WriteLine("using plugin: " + plugin.Value.Name);
var dataProvider = plugin.Value.ReadVectoJob(file); var dataProvider = plugin.Value.ReadVectoJob(file);
fileWriter = new FileOutputWriter(file); fileWriter = new FileOutputWriter(file);
var runsFactory = new SimulatorFactory(mode, dataProvider, fileWriter) { var runsFactory = new SimulatorFactory(mode, dataProvider, fileWriter) {
...@@ -215,32 +219,29 @@ Examples: ...@@ -215,32 +219,29 @@ Examples:
} }
} }
Console.WriteLine(); WriteLine();
Console.ForegroundColor = ConsoleColor.White; WriteLine(@"Detected cycles:", ConsoleColor.White);
Console.WriteLine(@"Detected cycles:");
Console.ResetColor();
foreach (var cycle in _jobContainer.GetCycleTypes()) { foreach (var cycle in _jobContainer.GetCycleTypes()) {
Console.WriteLine(@" {0}: {1}", cycle.Name, cycle.CycleType); WriteLine(string.Format(@" {0}: {1}", cycle.Name, cycle.CycleType));
} }
Console.WriteLine(); WriteLine();
stopWatch.Stop(); stopWatch.Stop();
timings.Add("Reading input files", stopWatch.Elapsed.TotalMilliseconds); timings.Add("Reading input files", stopWatch.Elapsed.TotalMilliseconds);
stopWatch.Reset(); stopWatch.Reset();
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine(@"Starting simulation runs"); WriteLine(@"Starting simulation runs", ConsoleColor.White);
if (debugEnabled) { if (_debugEnabled) {
Console.ForegroundColor = ConsoleColor.Yellow; WriteLine(@"Debug-Output is enabled, executing simulation runs sequentially", ConsoleColor.Yellow);
Console.WriteLine(@"Debug-Output is enabled, executing simulation runs sequentially");
} }
Console.ResetColor(); WriteLine();
Console.WriteLine();
DisplayWarnings(); DisplayWarnings();
Console.WriteLine(); WriteLine();
stopWatch.Start(); stopWatch.Start();
_jobContainer.Execute(!debugEnabled); _jobContainer.Execute(!_debugEnabled);
Console.CancelKeyPress += (sender, e) => { Console.CancelKeyPress += (sender, e) => {
if (e.SpecialKey == ConsoleSpecialKey.ControlC) { if (e.SpecialKey == ConsoleSpecialKey.ControlC) {
...@@ -264,20 +265,41 @@ Examples: ...@@ -264,20 +265,41 @@ Examples:
DisplayWarnings(); DisplayWarnings();
} catch (Exception e) { } catch (Exception e) {
if (!_quiet) {
Console.ForegroundColor = ConsoleColor.Red; Console.ForegroundColor = ConsoleColor.Red;
Console.Error.WriteLine(e.Message); Console.Error.WriteLine(e.Message);
Console.ResetColor(); Console.ResetColor();
Console.Error.WriteLine("Please see log-file for further details (logs/log.txt)"); Console.Error.WriteLine("Please see log-file for further details (logs/log.txt)");
}
Environment.ExitCode = Environment.ExitCode != 0 ? Environment.ExitCode : 1; Environment.ExitCode = Environment.ExitCode != 0 ? Environment.ExitCode : 1;
} }
#if DEBUG
Console.WriteLine("done.");
Console.ReadKey(); Console.ReadKey();
#endif
return Environment.ExitCode; return Environment.ExitCode;
} }
private static void WriteLine()
{
if (_quiet && !_debugEnabled) {
return;
}
Console.WriteLine();
}
private static void WriteLine(string message, ConsoleColor foregroundColor = ConsoleColor.Gray)
{
if (_quiet && !_debugEnabled) {
return;
}
Console.ForegroundColor = foregroundColor;
Console.WriteLine(message);
Console.ResetColor();
}
private static void DetectPlugins() private static void DetectPlugins()
{ {
var assemblies = new List<Assembly>(); var assemblies = new List<Assembly>();
...@@ -307,6 +329,10 @@ Examples: ...@@ -307,6 +329,10 @@ Examples:
private static void DisplayWarnings() private static void DisplayWarnings()
{ {
if (_quiet) {
return;
}
if (WarningMessages.Any()) { if (WarningMessages.Any()) {
Console.ForegroundColor = ConsoleColor.Yellow; Console.ForegroundColor = ConsoleColor.Yellow;
foreach (var message in WarningMessages) { foreach (var message in WarningMessages) {
...@@ -327,13 +353,17 @@ Examples: ...@@ -327,13 +353,17 @@ Examples:
private static void ShowVersionInformation() private static void ShowVersionInformation()
{ {
var vectodll = AssemblyName.GetAssemblyName("VectoCore.dll"); var vectodll = AssemblyName.GetAssemblyName("VectoCore.dll");
Console.WriteLine(@"VectoConsole: {0}", Assembly.GetExecutingAssembly().GetName().Version); WriteLine(string.Format(@"VectoConsole: {0}", Assembly.GetExecutingAssembly().GetName().Version));
Console.WriteLine(@"VectoCore: {0}", vectodll.Version); WriteLine(string.Format(@"VectoCore: {0}", vectodll.Version));
} }
private static void PrintProgress(Dictionary<int, JobContainer.ProgressEntry> progessData, private static void PrintProgress(Dictionary<int, JobContainer.ProgressEntry> progessData,
bool showTiming = true) bool showTiming = true)
{ {
if (_quiet) {
return;
}
Console.SetCursorPosition(0, Console.CursorTop - _numLines); Console.SetCursorPosition(0, Console.CursorTop - _numLines);
_numLines = 0; _numLines = 0;
var sumProgress = 0.0; var sumProgress = 0.0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment