public void ParseArguments() { PakuArguments args = new PakuArguments(); OptionSet options = args.BuildOptionSet(); Assert.IsNotNull(options); // 5 main options plus a help menu Assert.AreEqual(6, options.Count); // attempt to parse arguments and ensure that options were set correctly args = new PakuArguments(); bool success = args.Parse(new string[] { @"--dir=C:\foo", "--select:regex=foo", "--filter:age=cdate>30m", "--paku:delete=bar", "--log" }); Assert.IsTrue(success); Assert.IsNotNull(args.Directory); Assert.IsNotNull(args.SelectionStrategy); Assert.IsNotNull(args.FilterStrategy); Assert.IsNotNull(args.PakuStrategy); Assert.IsTrue(args.LoggingEnabled); // missing arguments args = new PakuArguments(); success = args.Parse(new string[] { "--selection:regex=foo" }); Assert.IsFalse(success); }
static void Main(string[] args) { PakuArguments arguments = new PakuArguments(); bool parseSuccess = arguments.Parse(args); if (arguments.Directory == null) { arguments.Directory = Directory.GetCurrentDirectory(); } if (parseSuccess) { Console.WriteLine($"Removing files from: {arguments.Directory}"); Console.WriteLine(); Pipeline pipeline = new Pipeline(arguments.SelectionStrategy.Item1, arguments.FilterStrategy.Item1, arguments.PakuStrategy.Item1); pipeline.Execute(arguments.Directory, arguments.SelectionStrategy.Item2, arguments.FilterStrategy.Item2, arguments.PakuStrategy.Item2, arguments.LoggingEnabled); } }