Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions OrganizeIt.Cli/Options.cs

This file was deleted.

4 changes: 0 additions & 4 deletions OrganizeIt.Cli/OrganizeIt.Cli.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="CommandLineParser" Version="2.9.1" />
</ItemGroup>

<ItemGroup>
<Content Include="./config.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
Expand Down
79 changes: 56 additions & 23 deletions OrganizeIt.Cli/Program.cs
Original file line number Diff line number Diff line change
@@ -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<Options>(args)
.WithParsed<Options>(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;
Expand Down
2 changes: 1 addition & 1 deletion Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```
Expand Down
Loading