private static void ParseCMDArgs(string[] args)
{
Console.Write(" Arguments : ");
for (int i = 0; i < args.Length; i++)
{
Console.Write(" [{0}] {1}", i + 1, args[i]);
}
Console.WriteLine(Environment.NewLine);
int lastSwitch = 0;
foreach (string s in args)
{
if (s.StartsWith("-")) // cmd switch
{
switch (s)
{
case "-o": // Overwrite
Overwrite = true;
lastSwitch++;
break;
case "-r": // Recursive
Recursive = true;
lastSwitch++;
break;
case "-d": // Directories
Single = false;
lastSwitch++;
break;
case "-v": // Verbose
Verbose = true;
lastSwitch++;
break;
case "-vv": // Very verbose
Verbose = true;
VeryVerbose = true;
lastSwitch++;
break;
default:
Console.WriteLine(" ");
Console.WriteLine(" Invalid argument \"" + s + "\"");
return;
}
}
else // File, directory or invalid argumrent
{
if (args.Length - lastSwitch > 2)
{
Console.WriteLine(" Too many arguments" + Environment.NewLine);
return;
}
else if (args.Length - lastSwitch < 1)
{
Console.WriteLine(" Too few arguments");
return;
}
else if (args.Length - lastSwitch == 2)
{
string name = args[lastSwitch];
if (File.Exists(name))
{
Files.Add(args[lastSwitch]);
Files.Add(args[lastSwitch + 1]);
break;
}
else if (Directory.Exists(name))
{
Directories.Add(args[lastSwitch]);
Directories.Add(args[lastSwitch + 1]);
break;
}
else
{
Console.WriteLine(" Invalid file or directory argument. The input file or directory must exist.");
return;
}
}
else if (args.Length - lastSwitch == 1)
{
if (File.Exists(args[args.Length - 1]))
{
Files.Add(args[args.Length - 1]);
break;
}
else if (Directory.Exists(args[args.Length - 1]))
{
Directories.Add(args[args.Length - 1]);
break;
}
else
{
Console.WriteLine(" Invalid file or directory argument. The input file or directory must exist.");
return;
}
}
}
}
if (Verbose && VeryVerbose)
{
Verbose = true;
}
if (Single) // Single File
{
if (Overwrite)
{
if (Files.Count != 1)
{
Console.WriteLine(" Invalid command line arguments. Try : bb -o /yourinputdirectory/yourinputfile.swf");
return;
}
else
{
try
{
ScanSingle(Files[0]);
}
catch (Exception e)
{
Console.WriteLine(" " + e.Message);
}
}
}
else
{
if (Files.Count != 2)
{
Console.WriteLine(" Invalid command line arguments. Try : bb /yourinputdirectory/yourinputfile.swf /youroutputdirectory/youroutputfile.swf");
return;
}
else
{
try
{
ScanSingle(Files[0], Files[1]);
}
catch (Exception e)
{
Console.WriteLine(" " + e.Message);
}
}
}
}
else// Directories
{
if (Recursive)
{
if (Overwrite)
{
if (Directories.Count != 1)
{
Console.WriteLine(" Invalid command line arguments. Try : bb -d -r -o /yourinputdirectory");
return;
}
else
{
try
{
ScanDir(Directories[0], true);
}
catch (Exception e)
{
Console.WriteLine(" " + e.Message);
}
}
}
else// Overwrite
{
if (Directories.Count != 2)
{
Console.WriteLine(" Invalid command line arguments. Try : bb -d -r /yourinputdirectory /youroutputdirectory");
return;
}
else
{
try
{
ScanDir(Directories[0], Directories[1], true);
}
catch (Exception e)
{
Console.WriteLine(" " + e.Message);
}
}
}
}
else// Top dir only
{
if (Overwrite)
{
if (Directories.Count != 1)
{
Console.WriteLine(" Invalid command line arguments. Try : bb -d -o /yourinputdirectory");
return;
}
else
{
try
{
ScanDir(Directories[0], true);
}
catch (Exception e)
{
Console.WriteLine(" " + e.Message);
}
}
}
else// Overwrite
{
if (Directories.Count != 2)
{
Console.WriteLine(" Invalid command line arguments. Try : bb -d /yourinputdirectory /youroutputdirectory");
return;
}
else
{
ScanDir(Directories[0], Directories[1], true);
}
}
}
}
}