in Cli/AttackSurfaceAnalyzerClient.cs [56:126]
private static void Main(string[] args)
{
#if DEBUG
AttackSurfaceAnalyzer.Utils.Logger.Setup(true, false);
#else
AttackSurfaceAnalyzer.Utils.Logger.Setup(false, false);
#endif
var version = (Assembly
.GetEntryAssembly()?
.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false) as AssemblyInformationalVersionAttribute[])?
[0].InformationalVersion ?? "Unknown";
Log.Information("AttackSurfaceAnalyzer v.{0}", version);
AttackSurfaceAnalyzer.Utils.Strings.Setup();
var argsResult = Parser.Default.ParseArguments<CollectCommandOptions, MonitorCommandOptions, ExportMonitorCommandOptions, ExportCollectCommandOptions, ConfigCommandOptions, GuiCommandOptions, VerifyOptions, GuidedModeCommandOptions>(args)
.MapResult(
(CollectCommandOptions opts) =>
{
SetupLogging(opts);
SetupDatabase(opts);
return RunCollectCommand(opts);
},
(MonitorCommandOptions opts) =>
{
SetupLogging(opts);
SetupDatabase(opts);
return RunMonitorCommand(opts);
},
(ExportCollectCommandOptions opts) =>
{
SetupLogging(opts);
SetupDatabase(opts);
return RunExportCollectCommand(opts);
},
(ExportMonitorCommandOptions opts) =>
{
SetupLogging(opts);
SetupDatabase(opts);
return RunExportMonitorCommand(opts);
},
(ConfigCommandOptions opts) =>
{
SetupLogging(opts);
return RunConfigCommand(opts);
},
(GuiCommandOptions opts) =>
{
SetupLogging(opts);
SetupDatabase(opts);
return RunGuiCommand(opts);
},
(VerifyOptions opts) =>
{
SetupLogging(opts);
SetupDatabase(opts);
return RunVerifyRulesCommand(opts);
},
(GuidedModeCommandOptions opts) =>
{
SetupLogging(opts);
SetupDatabase(opts);
return RunGuidedModeCommand(opts);
},
errs => ASA_ERROR.UNKNOWN
);
DatabaseManager?.CloseDatabase();
Log.CloseAndFlush();
Environment.Exit((int)argsResult);
}