private static int EnsureDirectoryToScanAndRefFileExistsAndStartScan(ScanOptions opts) { if (opts.WhatIf) { Console.WriteLine("Skipping scan due to --whatif argument"); WhatIf.IWouldScan(opts); return(ExitCodes.Success); } if (!Directory.Exists(opts.DirectoryToScan)) { Console.WriteLine($"{opts.DirectoryToScan} does not exist"); return(ExitCodes.ScanDirDoesNotExist); } if (opts.ReferenceFileIsSpecified && !File.Exists(opts.ReferenceFile)) { Console.WriteLine($"{opts.ReferenceFile} does not exist"); return(ExitCodes.RefFileDoesNotExist); } ScanOptions = opts; var comparison = Scan(); var report = new ReportBuilder(comparison).Build(); MailHelper.SendReportByMailDontThrow(report.ToString(), opts); return(ExitCodes.Success); }
internal static void IWouldScan(ScanOptions opts) { var fsEntries = EnumerateFsEntries(opts.DirectoryToScan); Console.WriteLine("Here's what I would do:"); Console.WriteLine($"I would scan {opts.DirectoryToScan} which has {fsEntries.Count()} files and directories"); Console.WriteLine($"After that, I'll compare the scan result with {opts.ReferenceFile}"); }
internal static void SendReportByMailDontThrow(string mailBody, ScanOptions opts) { try { SendReportByMail(mailBody, opts); } catch (Exception ex) { Console.WriteLine(ex); } }
internal static void SendReportByMail(string mailBody, ScanOptions opts) { var mailCfg = CreateMailConfiguration(); var mailer = new Mailer(mailCfg); var msg = new MailMessage { Sender = new MailAddress(mailCfg.Sender), Recipients = mailCfg.Recipients.Select(m => new MailAddress(m)).ToList(), Subject = $"Directory scan of {opts.DirectoryToScan}", Body = mailBody }; mailer.SendMail(msg); }