diff --git a/OrganizeIt.Cli/Options.cs b/OrganizeIt.Cli/Options.cs
deleted file mode 100644
index ebfbd63..0000000
--- a/OrganizeIt.Cli/Options.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using CommandLine;
-
-namespace OrganizeIt.Cli;
-
-public class Options
-{
- [Option('c', "config", Required = false, HelpText = "Set the config file")]
- public string Config { get; set; } = string.Empty;
-
- [Option('d', "directory", Required = false, HelpText = "Set the target directory")]
- public string Directory { get; set; } = string.Empty;
-}
\ No newline at end of file
diff --git a/OrganizeIt.Cli/OrganizeIt.Cli.csproj b/OrganizeIt.Cli/OrganizeIt.Cli.csproj
index 2f5e3de..98e5caa 100644
--- a/OrganizeIt.Cli/OrganizeIt.Cli.csproj
+++ b/OrganizeIt.Cli/OrganizeIt.Cli.csproj
@@ -7,10 +7,6 @@
enable
-
-
-
-
Always
diff --git a/OrganizeIt.Cli/Program.cs b/OrganizeIt.Cli/Program.cs
index 67d564a..2c077e8 100644
--- a/OrganizeIt.Cli/Program.cs
+++ b/OrganizeIt.Cli/Program.cs
@@ -1,38 +1,71 @@
-using CommandLine;
-using OrganizeIt.Cli;
-using OrganizeIt.Core;
+using OrganizeIt.Core;
public static class Program
{
public static void Main(string[] args)
{
- Parser.Default.ParseArguments(args)
- .WithParsed(o =>
+ string configFileString = "";
+ string targetDirectory = "";
+
+ for (int i = 0; i < args.Length; i++)
+ {
+ string arg = args[i];
+ if (arg.StartsWith("-c") || arg.StartsWith("--config"))
{
- Console.WriteLine("Welcome to the OrganizeIt.Cli!");
- FileInfo? configFile = GetConfigFile(o.Config);
- if (configFile == null)
+ if (i + 1 < args.Length)
{
- Console.WriteLine("Cannot proceed without a valid configuration file.");
- Console.ReadKey();
+ configFileString = args[i + 1];
+ i++;
+ }
+ else
+ {
+ Console.WriteLine("Error: Missing config file path after -c or --config option.");
return;
}
- Configs? configs = new Configs();
- if (string.IsNullOrEmpty(o.Directory) || o.Directory.Equals("."))
+ }
+ else if (arg.StartsWith("-d") || arg.StartsWith("--directory"))
+ {
+ if (i + 1 < args.Length)
{
- o.Directory = Environment.CurrentDirectory;
+ targetDirectory = args[i + 1];
+ i++;
}
- Console.WriteLine("Directory to organize: " + o.Directory);
- configs = configs.GetConfigs(configFile);
- int result = Organizer.Organize(o.Directory, configs);
- if (result >= 1) Console.WriteLine("Organizer ran successfully!"); else Console.WriteLine("Organizer failed");
- Console.WriteLine("Press any key to exit...");
- Console.ReadKey();
- return;
- });
-
- }
+ else
+ {
+ Console.WriteLine("Error: Missing target directory path after -d or --directory option.");
+ return;
+ }
+ }
+ else
+ {
+ Console.WriteLine($"Warning: Unknown argument: {arg}");
+ }
+ }
+
+ Console.WriteLine("Welcome to the OrganizeIt.Cli!");
+ FileInfo? configFile = GetConfigFile(configFileString);
+ if (configFile == null)
+ {
+ Console.WriteLine("Cannot proceed without a valid configuration file.");
+ Console.ReadKey();
+ return;
+ }
+
+ Configs? configs = new Configs();
+ if (string.IsNullOrEmpty(targetDirectory) || targetDirectory.Equals("."))
+ {
+ targetDirectory = Environment.CurrentDirectory;
+ }
+ Console.WriteLine("Directory to organize: " + targetDirectory);
+ configs = configs.GetConfigs(configFile);
+ int result = Organizer.Organize(targetDirectory, configs);
+ if (result >= 1) Console.WriteLine("Organizer ran successfully!"); else Console.WriteLine("Organizer failed");
+ Console.WriteLine("Press any key to exit...");
+ Console.ReadKey();
+ return;
+ }
+
private static FileInfo? GetConfigFile(string? configPath)
{
string? filePath = string.IsNullOrEmpty(configPath) ? $"{Environment.CurrentDirectory}/config.json" : configPath;
diff --git a/Readme.md b/Readme.md
index 1e13b45..817b47a 100644
--- a/Readme.md
+++ b/Readme.md
@@ -84,7 +84,7 @@ The app currently supports organization by extensions. I'm working on making it
```bash
> organizeit.cli
```
-- Speciffy the path to the custome config.json using the -c flag
+- Speciffy the path to the custom config.json using the -c flag
```bash
> organizeit.cli -c path/to/the/custom/config/file
```