mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[SabreTools, SimpleSort] Make a better system for handling flags; add handling of non-= inputs. Thanks EliUmniCk for the suggestion
This commit is contained in:
@@ -138,9 +138,9 @@ namespace SabreTools
|
|||||||
List<string> inputs = new List<string>();
|
List<string> inputs = new List<string>();
|
||||||
|
|
||||||
// Determine which switches are enabled (with values if necessary)
|
// Determine which switches are enabled (with values if necessary)
|
||||||
foreach (string arg in args)
|
for (int i = 0; i < args.Length; i++)
|
||||||
{
|
{
|
||||||
switch (arg)
|
switch (args[i])
|
||||||
{
|
{
|
||||||
case "-?":
|
case "-?":
|
||||||
case "-h":
|
case "-h":
|
||||||
@@ -155,6 +155,16 @@ namespace SabreTools
|
|||||||
case "--add-date":
|
case "--add-date":
|
||||||
addFileDates = true;
|
addFileDates = true;
|
||||||
break;
|
break;
|
||||||
|
case "-ae":
|
||||||
|
case "--add-ext":
|
||||||
|
i++;
|
||||||
|
addext = args[i];
|
||||||
|
break;
|
||||||
|
case "-au":
|
||||||
|
case "--author":
|
||||||
|
i++;
|
||||||
|
author = args[i];
|
||||||
|
break;
|
||||||
case "-b":
|
case "-b":
|
||||||
case "--bare":
|
case "--bare":
|
||||||
removeDateFromAutomaticName = true;
|
removeDateFromAutomaticName = true;
|
||||||
@@ -167,10 +177,25 @@ namespace SabreTools
|
|||||||
case "--cascade":
|
case "--cascade":
|
||||||
diffMode |= DiffMode.Cascade;
|
diffMode |= DiffMode.Cascade;
|
||||||
break;
|
break;
|
||||||
|
case "-ca":
|
||||||
|
case "--category=":
|
||||||
|
i++;
|
||||||
|
category = args[i];
|
||||||
|
break;
|
||||||
case "-cf":
|
case "-cf":
|
||||||
case "--copy-files":
|
case "--copy-files":
|
||||||
copyFiles = true;
|
copyFiles = true;
|
||||||
break;
|
break;
|
||||||
|
case "-co":
|
||||||
|
case "--comment":
|
||||||
|
i++;
|
||||||
|
comment = args[i];
|
||||||
|
break;
|
||||||
|
case "-crc":
|
||||||
|
case "--crc":
|
||||||
|
i++;
|
||||||
|
crc = args[i];
|
||||||
|
break;
|
||||||
case "-csv":
|
case "-csv":
|
||||||
case "--csv":
|
case "--csv":
|
||||||
statOutputFormat = StatOutputFormat.CSV;
|
statOutputFormat = StatOutputFormat.CSV;
|
||||||
@@ -184,10 +209,20 @@ namespace SabreTools
|
|||||||
case "--dfd":
|
case "--dfd":
|
||||||
datFromDir = true;
|
datFromDir = true;
|
||||||
break;
|
break;
|
||||||
|
case "-da":
|
||||||
|
case "--date":
|
||||||
|
i++;
|
||||||
|
date = args[i];
|
||||||
|
break;
|
||||||
case "-dd":
|
case "-dd":
|
||||||
case "--dedup":
|
case "--dedup":
|
||||||
dedup = true;
|
dedup = true;
|
||||||
break;
|
break;
|
||||||
|
case "-de":
|
||||||
|
case "--desc":
|
||||||
|
i++;
|
||||||
|
description = args[i];
|
||||||
|
break;
|
||||||
case "-di":
|
case "-di":
|
||||||
case "--diff":
|
case "--diff":
|
||||||
diffMode |= DiffMode.All;
|
diffMode |= DiffMode.All;
|
||||||
@@ -204,14 +239,54 @@ namespace SabreTools
|
|||||||
case "--diff-nd":
|
case "--diff-nd":
|
||||||
diffMode |= DiffMode.NoDupes;
|
diffMode |= DiffMode.NoDupes;
|
||||||
break;
|
break;
|
||||||
|
case "-em":
|
||||||
|
case "--email":
|
||||||
|
i++;
|
||||||
|
email = args[i];
|
||||||
|
break;
|
||||||
case "-es":
|
case "-es":
|
||||||
case "--ext-split":
|
case "--ext-split":
|
||||||
splitByExt = true;
|
splitByExt = true;
|
||||||
break;
|
break;
|
||||||
|
case "-exta":
|
||||||
|
case "--exta":
|
||||||
|
i++;
|
||||||
|
exta = args[i];
|
||||||
|
break;
|
||||||
|
case "-extb":
|
||||||
|
case "--extb":
|
||||||
|
i++;
|
||||||
|
extb = args[i];
|
||||||
|
break;
|
||||||
case "-f":
|
case "-f":
|
||||||
case "--files":
|
case "--files":
|
||||||
parseArchivesAsFiles = true;
|
parseArchivesAsFiles = true;
|
||||||
break;
|
break;
|
||||||
|
case "-fi":
|
||||||
|
case "--filename":
|
||||||
|
i++;
|
||||||
|
filename = args[i];
|
||||||
|
break;
|
||||||
|
case "-fm":
|
||||||
|
case "--forcemerge":
|
||||||
|
i++;
|
||||||
|
forcemerge = args[i];
|
||||||
|
break;
|
||||||
|
case "-fn":
|
||||||
|
case "--forcend":
|
||||||
|
i++;
|
||||||
|
forcend = args[i];
|
||||||
|
break;
|
||||||
|
case "-fp":
|
||||||
|
case "--forcepack":
|
||||||
|
i++;
|
||||||
|
forcepack = args[i];
|
||||||
|
break;
|
||||||
|
case "-gn":
|
||||||
|
case "--game-name":
|
||||||
|
i++;
|
||||||
|
gamename = args[i];
|
||||||
|
break;
|
||||||
case "-gp":
|
case "-gp":
|
||||||
case "--game-prefix":
|
case "--game-prefix":
|
||||||
datPrefix = true;
|
datPrefix = true;
|
||||||
@@ -224,6 +299,16 @@ namespace SabreTools
|
|||||||
case "--headerer":
|
case "--headerer":
|
||||||
headerer = true;
|
headerer = true;
|
||||||
break;
|
break;
|
||||||
|
case "-he":
|
||||||
|
case "--header":
|
||||||
|
i++;
|
||||||
|
header = args[i];
|
||||||
|
break;
|
||||||
|
case "-hp":
|
||||||
|
case "--homepage":
|
||||||
|
i++;
|
||||||
|
homepage = args[i];
|
||||||
|
break;
|
||||||
case "-hs":
|
case "-hs":
|
||||||
case "--hash-split":
|
case "--hash-split":
|
||||||
splitByHash = true;
|
splitByHash = true;
|
||||||
@@ -232,14 +317,52 @@ namespace SabreTools
|
|||||||
case "--html":
|
case "--html":
|
||||||
statOutputFormat = StatOutputFormat.HTML;
|
statOutputFormat = StatOutputFormat.HTML;
|
||||||
break;
|
break;
|
||||||
|
case "-input":
|
||||||
|
case "--input":
|
||||||
|
i++;
|
||||||
|
if (File.Exists(args[i]) || Directory.Exists(args[i]))
|
||||||
|
{
|
||||||
|
inputs.Add(args[i]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_logger.Error("Invalid input detected: " + args[i]);
|
||||||
|
Console.WriteLine();
|
||||||
|
Build.Help();
|
||||||
|
Console.WriteLine();
|
||||||
|
_logger.Error("Invalid input detected: " + args[i]);
|
||||||
|
_logger.Close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case "-ip":
|
case "-ip":
|
||||||
case "--inplace":
|
case "--inplace":
|
||||||
inplace = true;
|
inplace = true;
|
||||||
break;
|
break;
|
||||||
|
case "-is":
|
||||||
|
case "--status":
|
||||||
|
i++;
|
||||||
|
status = args[i];
|
||||||
|
break;
|
||||||
case "-m":
|
case "-m":
|
||||||
case "--merge":
|
case "--merge":
|
||||||
merge = true;
|
merge = true;
|
||||||
break;
|
break;
|
||||||
|
case "-md5":
|
||||||
|
case "--md5":
|
||||||
|
i++;
|
||||||
|
md5 = args[i];
|
||||||
|
break;
|
||||||
|
case "-mt":
|
||||||
|
case "--mt":
|
||||||
|
i++;
|
||||||
|
Int32.TryParse(args[i], out maxParallelism);
|
||||||
|
break;
|
||||||
|
case "-n":
|
||||||
|
case "--name":
|
||||||
|
i++;
|
||||||
|
name = args[i];
|
||||||
|
break;
|
||||||
case "-nc":
|
case "-nc":
|
||||||
case "--nodump-col":
|
case "--nodump-col":
|
||||||
showNodumpColumn = true;
|
showNodumpColumn = true;
|
||||||
@@ -304,10 +427,25 @@ namespace SabreTools
|
|||||||
case "--output-tsv":
|
case "--output-tsv":
|
||||||
outputFormat |= OutputFormat.TSV;
|
outputFormat |= OutputFormat.TSV;
|
||||||
break;
|
break;
|
||||||
|
case "-out":
|
||||||
|
case "--out":
|
||||||
|
i++;
|
||||||
|
outDir = args[i];
|
||||||
|
break;
|
||||||
case "-ox":
|
case "-ox":
|
||||||
case "--output-xml":
|
case "--output-xml":
|
||||||
outputFormat |= OutputFormat.Logiqx;
|
outputFormat |= OutputFormat.Logiqx;
|
||||||
break;
|
break;
|
||||||
|
case "-post":
|
||||||
|
case "--postfix":
|
||||||
|
i++;
|
||||||
|
postfix = args[i];
|
||||||
|
break;
|
||||||
|
case "-pre":
|
||||||
|
case "--prefix":
|
||||||
|
i++;
|
||||||
|
prefix = args[i];
|
||||||
|
break;
|
||||||
case "-q":
|
case "-q":
|
||||||
case "--quotes":
|
case "--quotes":
|
||||||
quotes = true;
|
quotes = true;
|
||||||
@@ -320,26 +458,66 @@ namespace SabreTools
|
|||||||
case "--rev-cascade":
|
case "--rev-cascade":
|
||||||
diffMode |= DiffMode.ReverseCascade;
|
diffMode |= DiffMode.ReverseCascade;
|
||||||
break;
|
break;
|
||||||
|
case "-rd":
|
||||||
|
case "--root-dir":
|
||||||
|
i++;
|
||||||
|
root = args[i];
|
||||||
|
break;
|
||||||
case "-re":
|
case "-re":
|
||||||
case "--restore":
|
case "--restore":
|
||||||
restore = true;
|
restore = true;
|
||||||
break;
|
break;
|
||||||
|
case "-rep":
|
||||||
|
case "--rep-ext":
|
||||||
|
i++;
|
||||||
|
repext = args[i];
|
||||||
|
break;
|
||||||
case "-rme":
|
case "-rme":
|
||||||
case "--rem-ext":
|
case "--rem-ext":
|
||||||
remext = true;
|
remext = true;
|
||||||
break;
|
break;
|
||||||
|
case "-rn":
|
||||||
|
case "--rom-name":
|
||||||
|
i++;
|
||||||
|
romname = args[i];
|
||||||
|
break;
|
||||||
case "-ro":
|
case "-ro":
|
||||||
case "--romba":
|
case "--romba":
|
||||||
romba = true;
|
romba = true;
|
||||||
break;
|
break;
|
||||||
|
case "-root":
|
||||||
|
case "--root":
|
||||||
|
i++;
|
||||||
|
rootdir = args[i];
|
||||||
|
break;
|
||||||
|
case "-rt":
|
||||||
|
case "--rom-type":
|
||||||
|
i++;
|
||||||
|
romtype = args[i];
|
||||||
|
break;
|
||||||
case "-sd":
|
case "-sd":
|
||||||
case "--superdat":
|
case "--superdat":
|
||||||
superdat = true;
|
superdat = true;
|
||||||
break;
|
break;
|
||||||
|
case "-seq":
|
||||||
|
case "--equal":
|
||||||
|
i++;
|
||||||
|
seq = GetSizeFromString(args[i]);
|
||||||
|
break;
|
||||||
case "-sf":
|
case "-sf":
|
||||||
case "--skip":
|
case "--skip":
|
||||||
skip = true;
|
skip = true;
|
||||||
break;
|
break;
|
||||||
|
case "-sgt":
|
||||||
|
case "--greater":
|
||||||
|
i++;
|
||||||
|
sgt = GetSizeFromString(args[i]);
|
||||||
|
break;
|
||||||
|
case "-sha1":
|
||||||
|
case "--sha1":
|
||||||
|
i++;
|
||||||
|
sha1 = args[i];
|
||||||
|
break;
|
||||||
case "-si":
|
case "-si":
|
||||||
case "--single":
|
case "--single":
|
||||||
single = true;
|
single = true;
|
||||||
@@ -348,10 +526,20 @@ namespace SabreTools
|
|||||||
case "--softlist":
|
case "--softlist":
|
||||||
softlist = true;
|
softlist = true;
|
||||||
break;
|
break;
|
||||||
|
case "-slt":
|
||||||
|
case "--less":
|
||||||
|
i++;
|
||||||
|
slt = GetSizeFromString(args[i]);
|
||||||
|
break;
|
||||||
case "-st":
|
case "-st":
|
||||||
case "--stats":
|
case "--stats":
|
||||||
stats = true;
|
stats = true;
|
||||||
break;
|
break;
|
||||||
|
case "-t":
|
||||||
|
case "--temp":
|
||||||
|
i++;
|
||||||
|
tempDir = args[i];
|
||||||
|
break;
|
||||||
case "-trim":
|
case "-trim":
|
||||||
case "--trim":
|
case "--trim":
|
||||||
trim = true;
|
trim = true;
|
||||||
@@ -364,164 +552,218 @@ namespace SabreTools
|
|||||||
case "--tsv":
|
case "--tsv":
|
||||||
statOutputFormat = StatOutputFormat.TSV;
|
statOutputFormat = StatOutputFormat.TSV;
|
||||||
break;
|
break;
|
||||||
|
case "-u":
|
||||||
|
case "-url":
|
||||||
|
case "--url":
|
||||||
|
i++;
|
||||||
|
url = args[i];
|
||||||
|
break;
|
||||||
case "-ud":
|
case "-ud":
|
||||||
case "--update":
|
case "--update":
|
||||||
update = true;
|
update = true;
|
||||||
break;
|
break;
|
||||||
|
case "-v":
|
||||||
|
case "--version":
|
||||||
|
i++;
|
||||||
|
version = args[i];
|
||||||
|
break;
|
||||||
case "-xof":
|
case "-xof":
|
||||||
case "--exclude-of":
|
case "--exclude-of":
|
||||||
excludeOf = true;
|
excludeOf = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
string temparg = arg.Replace("\"", "").Replace("file://", "");
|
string temparg = args[i].Replace("\"", "").Replace("file://", "");
|
||||||
|
|
||||||
if (temparg.StartsWith("-ae=") || temparg.StartsWith("--add-ext="))
|
if (temparg.StartsWith("-") && temparg.Contains("="))
|
||||||
{
|
{
|
||||||
addext = temparg.Split('=')[1] ?? "";
|
// Split the argument
|
||||||
}
|
string[] split = temparg.Split('=');
|
||||||
else if (temparg.StartsWith("-au=") || temparg.StartsWith("--author="))
|
if (split[1] == null)
|
||||||
{
|
{
|
||||||
author = temparg.Split('=')[1] ?? "";
|
split[1] = "";
|
||||||
}
|
}
|
||||||
else if (temparg.StartsWith("-ca=") || temparg.StartsWith("--category="))
|
|
||||||
{
|
switch (split[0])
|
||||||
category = temparg.Split('=')[1] ?? "";
|
{
|
||||||
}
|
case "-ae":
|
||||||
else if (temparg.StartsWith("-co=") || temparg.StartsWith("--comment="))
|
case "--add-ext":
|
||||||
{
|
addext = split[1];
|
||||||
comment = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-au":
|
||||||
else if (temparg.StartsWith("-crc=") || temparg.StartsWith("--crc="))
|
case "--author":
|
||||||
{
|
author = split[1];
|
||||||
crc = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-ca":
|
||||||
else if (temparg.StartsWith("-da=") || temparg.StartsWith("--date="))
|
case "--category=":
|
||||||
{
|
category = split[1];
|
||||||
date = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-co":
|
||||||
else if (temparg.StartsWith("-de=") || temparg.StartsWith("--desc="))
|
case "--comment":
|
||||||
{
|
comment = split[1];
|
||||||
description = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-crc":
|
||||||
else if (temparg.StartsWith("-em=") || temparg.StartsWith("--email="))
|
case "--crc":
|
||||||
{
|
crc = split[1];
|
||||||
email = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-da":
|
||||||
else if (temparg.StartsWith("-exta="))
|
case "--date":
|
||||||
{
|
date = split[1];
|
||||||
exta = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-de":
|
||||||
else if (temparg.StartsWith("-extb="))
|
case "--desc":
|
||||||
{
|
description = split[1];
|
||||||
extb = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-em":
|
||||||
else if (temparg.StartsWith("-f=") || temparg.StartsWith("--filename="))
|
case "--email":
|
||||||
{
|
email = split[1];
|
||||||
filename = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-exta":
|
||||||
else if (temparg.StartsWith("-fm=") || temparg.StartsWith("--forcemerge="))
|
case "--exta":
|
||||||
{
|
exta = split[1];
|
||||||
forcemerge = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-extb":
|
||||||
else if (temparg.StartsWith("-fn=") || temparg.StartsWith("--forcend="))
|
case "--extb":
|
||||||
{
|
extb = split[1];
|
||||||
forcend = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-f":
|
||||||
else if (temparg.StartsWith("-fp=") || temparg.StartsWith("--forcepack="))
|
case "--filename":
|
||||||
{
|
filename = split[1];
|
||||||
forcepack = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-fm":
|
||||||
else if (temparg.StartsWith("-gn=") || temparg.StartsWith("--game-name="))
|
case "--forcemerge":
|
||||||
{
|
forcemerge = split[1];
|
||||||
gamename = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-fn":
|
||||||
else if (temparg.StartsWith("-h=") || temparg.StartsWith("--header="))
|
case "--forcend":
|
||||||
{
|
forcend = split[1];
|
||||||
header = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-fp":
|
||||||
else if (temparg.StartsWith("-hp=") || temparg.StartsWith("--homepage="))
|
case "--forcepack":
|
||||||
{
|
forcepack = split[1];
|
||||||
homepage = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-gn":
|
||||||
else if (temparg.StartsWith("-input="))
|
case "--game-name":
|
||||||
{
|
gamename = split[1];
|
||||||
inputs.Add(temparg.Split('=')[1] ?? "");
|
break;
|
||||||
}
|
case "-h":
|
||||||
else if (temparg.StartsWith("-is=") || temparg.StartsWith("--status="))
|
case "--header":
|
||||||
{
|
header = split[1];
|
||||||
status = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-hp":
|
||||||
else if (temparg.StartsWith("-md5=") || temparg.StartsWith("--md5="))
|
case "--homepage":
|
||||||
{
|
homepage = split[1];
|
||||||
md5 = temparg.Split('=')[1] ?? "";
|
break;
|
||||||
}
|
case "-input":
|
||||||
else if (temparg.StartsWith("-mt=") || temparg.StartsWith("--mt="))
|
case "--input":
|
||||||
{
|
if (File.Exists(split[1]) || Directory.Exists(split[1]))
|
||||||
Int32.TryParse(temparg.Split('=')[1] ?? "", out maxParallelism);
|
{
|
||||||
}
|
inputs.Add(split[1]);
|
||||||
else if (temparg.StartsWith("-n=") || temparg.StartsWith("--name="))
|
}
|
||||||
{
|
else
|
||||||
name = temparg.Split('=')[1] ?? "";
|
{
|
||||||
}
|
_logger.Error("Invalid input detected: " + args[i]);
|
||||||
else if (temparg.StartsWith("-out=") || temparg.StartsWith("--out="))
|
Console.WriteLine();
|
||||||
{
|
Build.Help();
|
||||||
outDir = temparg.Split('=')[1] ?? "";
|
Console.WriteLine();
|
||||||
}
|
_logger.Error("Invalid input detected: " + args[i]);
|
||||||
else if (temparg.StartsWith("-post=") || temparg.StartsWith("--postfix="))
|
_logger.Close();
|
||||||
{
|
return;
|
||||||
postfix = temparg.Split('=')[1] ?? "";
|
}
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-pre=") || temparg.StartsWith("--prefix="))
|
case "-is":
|
||||||
{
|
case "--status":
|
||||||
prefix = temparg.Split('=')[1] ?? "";
|
status = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-r=") || temparg.StartsWith("--root="))
|
case "-md5":
|
||||||
{
|
case "--md5":
|
||||||
rootdir = temparg.Split('=')[1] ?? "";
|
md5 = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-rd=") || temparg.StartsWith("--root-dir="))
|
case "-mt":
|
||||||
{
|
case "--mt":
|
||||||
root = temparg.Split('=')[1] ?? "";
|
Int32.TryParse(split[1], out maxParallelism);
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-re=") || temparg.StartsWith("--rep-ext="))
|
case "-n":
|
||||||
{
|
case "--name":
|
||||||
repext = temparg.Split('=')[1] ?? "";
|
name = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-rn=") || temparg.StartsWith("--rom-name="))
|
case "-out":
|
||||||
{
|
case "--out":
|
||||||
romname = temparg.Split('=')[1] ?? "";
|
outDir = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-rt=") || temparg.StartsWith("--rom-type="))
|
case "-post":
|
||||||
{
|
case "--postfix":
|
||||||
romtype = temparg.Split('=')[1] ?? "";
|
postfix = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-seq=") || temparg.StartsWith("--equal="))
|
case "-pre":
|
||||||
{
|
case "--prefix":
|
||||||
seq = GetSizeFromString(temparg.Split('=')[1] ?? "");
|
prefix = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-sgt=") || temparg.StartsWith("--greater="))
|
case "-r":
|
||||||
{
|
case "--root":
|
||||||
sgt = GetSizeFromString(temparg.Split('=')[1] ?? "");
|
rootdir = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-sha1=") || temparg.StartsWith("--sha1="))
|
case "-rd":
|
||||||
{
|
case "--root-dir":
|
||||||
sha1 = temparg.Split('=')[1] ?? "";
|
root = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-slt=") || temparg.StartsWith("--less="))
|
case "-re":
|
||||||
{
|
case "--rep-ext":
|
||||||
slt = GetSizeFromString(temparg.Split('=')[1] ?? "");
|
repext = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-t=") || temparg.StartsWith("--temp="))
|
case "-rn":
|
||||||
{
|
case "--rom-name":
|
||||||
tempDir = temparg.Split('=')[1] ?? "";
|
romname = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-u=") || temparg.StartsWith("-url=") || temparg.StartsWith("--url="))
|
case "-rt":
|
||||||
{
|
case "--rom-type":
|
||||||
url = temparg.Split('=')[1] ?? "";
|
romtype = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-v=") || temparg.StartsWith("--version="))
|
case "-seq":
|
||||||
{
|
case "--equal":
|
||||||
version = temparg.Split('=')[1] ?? "";
|
seq = GetSizeFromString(split[1]);
|
||||||
|
break;
|
||||||
|
case "-sgt":
|
||||||
|
case "--greater":
|
||||||
|
sgt = GetSizeFromString(split[1]);
|
||||||
|
break;
|
||||||
|
case "-sha1":
|
||||||
|
case "--sha1":
|
||||||
|
sha1 = split[1];
|
||||||
|
break;
|
||||||
|
case "-slt":
|
||||||
|
case "--less":
|
||||||
|
slt = GetSizeFromString(split[1]);
|
||||||
|
break;
|
||||||
|
case "-t":
|
||||||
|
case "--temp":
|
||||||
|
tempDir = split[1];
|
||||||
|
break;
|
||||||
|
case "-u":
|
||||||
|
case "-url":
|
||||||
|
case "--url":
|
||||||
|
url = split[1];
|
||||||
|
break;
|
||||||
|
case "-v":
|
||||||
|
case "--version":
|
||||||
|
version = split[1];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (File.Exists(temparg) || Directory.Exists(temparg))
|
||||||
|
{
|
||||||
|
inputs.Add(temparg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_logger.Error("Invalid input detected: " + args[i]);
|
||||||
|
Console.WriteLine();
|
||||||
|
Build.Help();
|
||||||
|
Console.WriteLine();
|
||||||
|
_logger.Error("Invalid input detected: " + args[i]);
|
||||||
|
_logger.Close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (File.Exists(temparg) || Directory.Exists(temparg))
|
else if (File.Exists(temparg) || Directory.Exists(temparg))
|
||||||
{
|
{
|
||||||
@@ -529,11 +771,11 @@ namespace SabreTools
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_logger.Error("Invalid input detected: " + arg);
|
_logger.Error("Invalid input detected: " + args[i]);
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
Build.Help();
|
Build.Help();
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
_logger.Error("Invalid input detected: " + arg);
|
_logger.Error("Invalid input detected: " + args[i]);
|
||||||
_logger.Close();
|
_logger.Close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,15 +62,23 @@ namespace SabreTools
|
|||||||
List<string> datfiles = new List<string>();
|
List<string> datfiles = new List<string>();
|
||||||
|
|
||||||
// Determine which switches are enabled (with values if necessary)
|
// Determine which switches are enabled (with values if necessary)
|
||||||
foreach (string arg in args)
|
for (int i = 0; i < args.Length; i++)
|
||||||
{
|
{
|
||||||
switch (arg)
|
switch (args[i])
|
||||||
{
|
{
|
||||||
case "-?":
|
case "-?":
|
||||||
case "-h":
|
case "-h":
|
||||||
case "--help":
|
case "--help":
|
||||||
help = true;
|
help = true;
|
||||||
break;
|
break;
|
||||||
|
case "-7z":
|
||||||
|
case "--7z":
|
||||||
|
i++;
|
||||||
|
if (!Int32.TryParse(args[i], out sevenzip))
|
||||||
|
{
|
||||||
|
sevenzip = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case "-ad":
|
case "-ad":
|
||||||
case "--add-date":
|
case "--add-date":
|
||||||
date = true;
|
date = true;
|
||||||
@@ -83,10 +91,36 @@ namespace SabreTools
|
|||||||
case "--delete":
|
case "--delete":
|
||||||
delete = true;
|
delete = true;
|
||||||
break;
|
break;
|
||||||
|
case "-dat":
|
||||||
|
case "--dat":
|
||||||
|
i++;
|
||||||
|
if (!File.Exists(args[i]))
|
||||||
|
{
|
||||||
|
logger.Error("DAT must be a valid file: " + args[i]);
|
||||||
|
Console.WriteLine();
|
||||||
|
Build.Help();
|
||||||
|
logger.Close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
datfiles.Add(args[i]);
|
||||||
|
break;
|
||||||
case "-do":
|
case "-do":
|
||||||
case "--directory":
|
case "--directory":
|
||||||
toFolder = true;
|
toFolder = true;
|
||||||
break;
|
break;
|
||||||
|
case "-gz":
|
||||||
|
case "--gz":
|
||||||
|
i++;
|
||||||
|
if (!Int32.TryParse(args[i], out gz))
|
||||||
|
{
|
||||||
|
gz = 2;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "-out":
|
||||||
|
case "--out":
|
||||||
|
i++;
|
||||||
|
outDir = args[i];
|
||||||
|
break;
|
||||||
case "-qs":
|
case "-qs":
|
||||||
case "--quick":
|
case "--quick":
|
||||||
quickScan = true;
|
quickScan = true;
|
||||||
@@ -95,6 +129,19 @@ namespace SabreTools
|
|||||||
case "--romba":
|
case "--romba":
|
||||||
romba = true;
|
romba = true;
|
||||||
break;
|
break;
|
||||||
|
case "-rar":
|
||||||
|
case "--rar":
|
||||||
|
i++;
|
||||||
|
if (!Int32.TryParse(args[i], out rar))
|
||||||
|
{
|
||||||
|
rar = 2;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "-t":
|
||||||
|
case "--temp":
|
||||||
|
i++;
|
||||||
|
tempDir = args[i];
|
||||||
|
break;
|
||||||
case "-tgz":
|
case "-tgz":
|
||||||
case "--tgz":
|
case "--tgz":
|
||||||
tgz = true;
|
tgz = true;
|
||||||
@@ -107,56 +154,92 @@ namespace SabreTools
|
|||||||
case "--verify":
|
case "--verify":
|
||||||
verify = true;
|
verify = true;
|
||||||
break;
|
break;
|
||||||
|
case "-zip":
|
||||||
|
case "--zip":
|
||||||
|
i++;
|
||||||
|
if (!Int32.TryParse(args[i], out zip))
|
||||||
|
{
|
||||||
|
zip = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
string temparg = arg.Replace("\"", "").Replace("file://", "");
|
string temparg = args[i].Replace("\"", "").Replace("file://", "");
|
||||||
|
|
||||||
if (temparg.StartsWith("-7z=") || temparg.StartsWith("--7z="))
|
if (temparg.StartsWith("-") && temparg.Contains("="))
|
||||||
{
|
{
|
||||||
if (!Int32.TryParse(temparg.Split('=')[1], out sevenzip))
|
// Split the argument
|
||||||
|
string[] split = temparg.Split('=');
|
||||||
|
if (split[1] == null)
|
||||||
{
|
{
|
||||||
sevenzip = 0;
|
split[1] = "";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if (temparg.StartsWith("-dat=") || temparg.StartsWith("--dat="))
|
switch (split[0])
|
||||||
{
|
|
||||||
string datfile = temparg.Split('=')[1];
|
|
||||||
if (!File.Exists(datfile))
|
|
||||||
{
|
{
|
||||||
logger.Error("DAT must be a valid file: " + datfile);
|
case "-7z":
|
||||||
Console.WriteLine();
|
case "--7z":
|
||||||
Build.Help();
|
if (!Int32.TryParse(split[1], out sevenzip))
|
||||||
logger.Close();
|
{
|
||||||
return;
|
sevenzip = 0;
|
||||||
}
|
}
|
||||||
datfiles.Add(datfile);
|
break;
|
||||||
}
|
case "-dat":
|
||||||
else if (temparg.StartsWith("-gz=") || temparg.StartsWith("--gz="))
|
case "--dat":
|
||||||
{
|
if (!File.Exists(split[1]))
|
||||||
if (!Int32.TryParse(temparg.Split('=')[1], out gz))
|
{
|
||||||
{
|
logger.Error("DAT must be a valid file: " + split[1]);
|
||||||
gz = 2;
|
Console.WriteLine();
|
||||||
}
|
Build.Help();
|
||||||
}
|
logger.Close();
|
||||||
else if (temparg.StartsWith("-out=") || temparg.StartsWith("--out="))
|
return;
|
||||||
{
|
}
|
||||||
outDir = temparg.Split('=')[1];
|
datfiles.Add(split[1]);
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-rar=") || temparg.StartsWith("--rar="))
|
case "-gz":
|
||||||
{
|
case "--gz":
|
||||||
if (!Int32.TryParse(temparg.Split('=')[1], out rar))
|
if (!Int32.TryParse(split[1], out gz))
|
||||||
{
|
{
|
||||||
rar = 2;
|
gz = 2;
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-t=") || temparg.StartsWith("--temp="))
|
case "-out":
|
||||||
{
|
case "--out":
|
||||||
tempDir = temparg.Split('=')[1];
|
outDir = split[1];
|
||||||
}
|
break;
|
||||||
else if (temparg.StartsWith("-zip=") || temparg.StartsWith("--zip="))
|
case "-rar":
|
||||||
{
|
case "--rar":
|
||||||
if (!Int32.TryParse(temparg.Split('=')[1], out zip))
|
if (!Int32.TryParse(split[1], out rar))
|
||||||
{
|
{
|
||||||
zip = 0;
|
rar = 2;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "-t":
|
||||||
|
case "--temp":
|
||||||
|
tempDir = split[1];
|
||||||
|
break;
|
||||||
|
case "-zip":
|
||||||
|
case "--zip":
|
||||||
|
if (!Int32.TryParse(split[1], out zip))
|
||||||
|
{
|
||||||
|
zip = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (File.Exists(temparg) || Directory.Exists(temparg))
|
||||||
|
{
|
||||||
|
inputs.Add(temparg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
logger.Error("Invalid input detected: " + args[i]);
|
||||||
|
Console.WriteLine();
|
||||||
|
Build.Help();
|
||||||
|
Console.WriteLine();
|
||||||
|
logger.Error("Invalid input detected: " + args[i]);
|
||||||
|
logger.Close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (File.Exists(temparg) || Directory.Exists(temparg))
|
else if (File.Exists(temparg) || Directory.Exists(temparg))
|
||||||
@@ -165,11 +248,11 @@ namespace SabreTools
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.Error("Invalid input detected: " + arg);
|
logger.Error("Invalid input detected: " + args[i]);
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
Build.Help();
|
Build.Help();
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
logger.Error("Invalid input detected: " + arg);
|
logger.Error("Invalid input detected: " + args[i]);
|
||||||
logger.Close();
|
logger.Close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user