private static bool ValidateMobiArguments(Options cmdLineOptions) { if (!ValidateCoreArguments(cmdLineOptions)) { return false; } if (string.IsNullOrWhiteSpace(cmdLineOptions.BookName)) { Console.WriteLine("bookName is required for Mobi format"); return false; } if (string.IsNullOrWhiteSpace(cmdLineOptions.BookTitle)) { Console.WriteLine("bookTitle is required for Mobi format"); return false; } if (string.IsNullOrWhiteSpace(cmdLineOptions.BookSummary)) { Console.WriteLine("bookSummary is required for Mobi format"); return false; } if (string.IsNullOrWhiteSpace(cmdLineOptions.Author)) { Console.WriteLine("author is required for Mobi format"); return false; } if (string.IsNullOrWhiteSpace(cmdLineOptions.Publisher)) { Console.WriteLine("publisher is required for Mobi format"); return false; } return true; }
private static bool ValidateWebSiteArguments(Options cmdLineOptions) { return ValidateCoreArguments(cmdLineOptions); }
private static bool ValidateCoreArguments(Options cmdLineOptions) { if (string.IsNullOrWhiteSpace(cmdLineOptions.SourceDirectory)) { Console.WriteLine("sourceDir is required"); return false; } if (string.IsNullOrWhiteSpace(cmdLineOptions.OutputDirectory)) { Console.WriteLine("outputDir is required"); return false; } return true; }
static void Main(string[] args) { var cmdLineOptions = new Options(); if (CommandLineParser.Default.ParseArguments(args, cmdLineOptions)) { // consume values here //Console.WriteLine("Author={0}", cmdLineOptions.Author); //Console.WriteLine("BookName={0}", cmdLineOptions.BookName); //Console.WriteLine("BookSummary={0}", cmdLineOptions.BookSummary); //Console.WriteLine("BookTitle={0}", cmdLineOptions.BookTitle); //Console.WriteLine("CoverImage={0}", cmdLineOptions.CoverImage); //Console.WriteLine("OutputDirectory={0}", cmdLineOptions.OutputDirectory); //Console.WriteLine("OutputFormat={0}", cmdLineOptions.OutputFormat); //Console.WriteLine("Publisher={0}", cmdLineOptions.Publisher); //Console.WriteLine("SourceDirectory={0}", cmdLineOptions.SourceDirectory); var isHelpRequired = false; try { switch (cmdLineOptions.OutputFormat) { case OutputFormat.MOBI: if (ValidateMobiArguments(cmdLineOptions)) { Console.WriteLine("Kindle generation starting..."); GenerateKindleBook(cmdLineOptions.BookName, cmdLineOptions.BookTitle, cmdLineOptions.BookSummary, cmdLineOptions.Author, cmdLineOptions.Publisher, cmdLineOptions.SourceDirectory, cmdLineOptions.OutputDirectory); Console.WriteLine("Kindle generation complete."); } else { isHelpRequired = true; } break; case OutputFormat.WebSite: if (ValidateWebSiteArguments(cmdLineOptions)) { Console.WriteLine("Web generation starting..."); GenerateWebContent(cmdLineOptions.SourceDirectory, cmdLineOptions.OutputDirectory); Console.WriteLine("Web generation complete."); } else { isHelpRequired = true; } break; default: throw new ArgumentOutOfRangeException(); } } catch (Exception e) { Console.WriteLine(e); isHelpRequired = true; } if (isHelpRequired) { Console.WriteLine(); Console.WriteLine(cmdLineOptions.GetUsage()); Environment.ExitCode = -1; } } else { Console.WriteLine("Incorrect usage. "); Console.WriteLine(cmdLineOptions.GetUsage()); Environment.ExitCode = -1; } }