[ALL] Bring each of the main classes into parity

This commit is contained in:
Matt Nadareski
2016-10-20 16:00:54 -07:00
parent f390520df0
commit 29e3a88682
3 changed files with 341 additions and 298 deletions

View File

@@ -67,11 +67,10 @@ namespace SabreTools
return; return;
} }
// Set all default values // Feature flags
bool help = false, bool help = false,
archive = false, archive = false,
build = false, build = false,
copy = false,
dbstats = false, dbstats = false,
depotRescan = false, depotRescan = false,
diffdat = false, diffdat = false,
@@ -81,21 +80,27 @@ namespace SabreTools
lookup = false, lookup = false,
memstats = false, memstats = false,
miss = false, miss = false,
onlyNeeded = false,
progress = false, progress = false,
purgeBackup = false, purgeBackup = false,
purgeDelete = false, purgeDelete = false,
refreshDats = false, refreshDats = false,
shutdown = false; shutdown = false;
// User flags
bool copy = false,
onlyNeeded = false;
// User inputs
string newdat ="", string newdat ="",
outdat = ""; outdat = "";
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])
{ {
// Feature flags
case "-?": case "-?":
case "-h": case "-h":
case "--help": case "--help":
@@ -107,9 +112,6 @@ namespace SabreTools
case "build": case "build":
build = true; build = true;
break; break;
case "-copy":
copy = true;
break;
case "dbstats": case "dbstats":
dbstats = true; dbstats = true;
break; break;
@@ -137,10 +139,6 @@ namespace SabreTools
case "miss": case "miss":
miss = true; miss = true;
break; break;
case "-only-needed":
case "--only-needed":
onlyNeeded = true;
break;
case "purge-backup": case "purge-backup":
purgeBackup = true; purgeBackup = true;
break; break;
@@ -156,16 +154,53 @@ namespace SabreTools
case "shutdown": case "shutdown":
shutdown = true; shutdown = true;
break; break;
default:
string temparg = arg.Replace("\"", "").Replace("file://", "");
if (temparg.StartsWith("-new=") || temparg.StartsWith("--new=")) // User flags
case "-copy":
copy = true;
break;
case "-only-needed":
case "--only-needed":
onlyNeeded = true;
break;
// User inputs
case "-new":
case "--new":
i++;
newdat = args[i];
break;
case "-out":
case "--out":
i++;
outdat = args[i];
break;
default:
string temparg = args[i].Replace("\"", "").Replace("file://", "");
if (temparg.StartsWith("-") && temparg.Contains("="))
{ {
newdat = temparg.Split('=')[1]; // Split the argument
} string[] split = temparg.Split('=');
else if (temparg.StartsWith("-out=") || temparg.StartsWith("--out=")) if (split[1] == null)
{ {
outdat = temparg.Split('=')[1]; split[1] = "";
}
switch (split[0])
{
case "-new":
case "--new":
newdat = split[1];
break;
case "-out":
case "--out":
outdat = split[i];
break;
default:
inputs.Add(temparg);
break;
}
} }
else else
{ {

View File

@@ -46,20 +46,18 @@ namespace SabreTools
return; return;
} }
// Set all default values // Feature flags
bool help = false, bool help = false,
// Feature flags
datFromDir = false, datFromDir = false,
headerer = false, headerer = false,
splitByExt = false, splitByExt = false,
splitByHash = false, splitByHash = false,
splitByType = false, splitByType = false,
stats = false, stats = false,
update = false, update = false;
// Other flags // User flags
addBlankFilesForEmptyFolder = false, bool addBlankFilesForEmptyFolder = false,
addFileDates = false, addFileDates = false,
cleanGameNames = false, cleanGameNames = false,
copyFiles = false, copyFiles = false,
@@ -86,54 +84,46 @@ namespace SabreTools
skip = false, skip = false,
usegame = true; usegame = true;
DiffMode diffMode = 0x0; DiffMode diffMode = 0x0;
OutputFormat outputFormat = 0x0;
StatOutputFormat statOutputFormat = StatOutputFormat.None;
// User inputs
int maxParallelism = 4; int maxParallelism = 4;
long sgt = -1, long sgt = -1,
slt = -1, slt = -1,
seq = -1; seq = -1;
OutputFormat outputFormat = 0x0; string addext = "",
StatOutputFormat statOutputFormat = StatOutputFormat.None;
// DAT fields
string
author = null, author = null,
category = null, category = null,
comment = null, comment = null,
crc = "",
date = null, date = null,
description = null, description = null,
email = null, email = null,
exta = null,
extb = null,
filename = null, filename = null,
forcemerge = "", forcemerge = "",
forcend = "", forcend = "",
forcepack = "", forcepack = "",
gamename = "",
header = null, header = null,
homepage = null, homepage = null,
name = null,
rootdir = null,
url = null,
version = null,
// Filter fields
crc = "",
gamename = "",
md5 = "", md5 = "",
romname = "", name = null,
romtype = "", outDir = "",
root = "",
sha1 = "",
status = "",
// Missfile fields
addext = "",
postfix = "", postfix = "",
prefix = "", prefix = "",
repext = "", repext = "",
romname = "",
// Misc fields romtype = "",
exta = null, root = "",
extb = null, rootdir = null,
outDir = "", sha1 = "",
status = "",
tempDir = ""; tempDir = "",
url = null,
version = null;
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)
@@ -141,11 +131,39 @@ namespace SabreTools
{ {
switch (args[i]) switch (args[i])
{ {
// Feature flags
case "-?": case "-?":
case "-h": case "-h":
case "--help": case "--help":
help = true; help = true;
break; break;
case "-d":
case "--d2d":
case "--dfd":
datFromDir = true;
break;
case "-es":
case "--ext-split":
splitByExt = true;
break;
case "-hd":
case "--headerer":
headerer = true;
break;
case "-hs":
case "--hash-split":
splitByHash = true;
break;
case "-st":
case "--stats":
stats = true;
break;
case "-ts":
case "--type-split":
splitByType = true;
break;
// User flags
case "-ab": case "-ab":
case "--add-blank": case "--add-blank":
addBlankFilesForEmptyFolder = true; addBlankFilesForEmptyFolder = true;
@@ -154,16 +172,6 @@ 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;
@@ -176,52 +184,22 @@ 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":
statOutputFormat = StatOutputFormat.CSV;
break;
case "-clean": case "-clean":
case "--clean": case "--clean":
cleanGameNames = true; cleanGameNames = true;
break; break;
case "-d": case "-csv":
case "--d2d": case "--csv":
case "--dfd": statOutputFormat = StatOutputFormat.CSV;
datFromDir = true;
break;
case "-da":
case "--date":
i++;
date = args[i];
break; 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;
@@ -238,54 +216,10 @@ 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 "--ext-split":
splitByExt = true;
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;
@@ -294,74 +228,18 @@ namespace SabreTools
case "--gz-files": case "--gz-files":
enableGzip = true; enableGzip = true;
break; break;
case "-hd":
case "--headerer":
headerer = true;
break;
case "-he":
case "--header":
i++;
header = args[i];
break;
case "-hp":
case "--homepage":
i++;
homepage = args[i];
break;
case "-hs":
case "--hash-split":
splitByHash = true;
break;
case "-html": case "-html":
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;
@@ -426,25 +304,10 @@ 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;
@@ -457,33 +320,205 @@ namespace SabreTools
case "--rev-cascade": case "--rev-cascade":
diffMode |= DiffMode.ReverseCascade; diffMode |= DiffMode.ReverseCascade;
break; break;
case "-re":
case "--restore":
restore = true;
break;
case "-rme":
case "--rem-ext":
remext = true;
break;
case "-ro":
case "--romba":
romba = true;
break;
case "-sd":
case "--superdat":
superdat = true;
break;
case "-sf":
case "--skip":
skip = true;
break;
case "-si":
case "--single":
single = true;
break;
case "-sl":
case "--softlist":
softlist = true;
break;
case "-trim":
case "--trim":
trim = true;
break;
case "-tsv":
case "--tsv":
statOutputFormat = StatOutputFormat.TSV;
break;
case "-ud":
case "--update":
update = true;
break;
case "-xof":
case "--exclude-of":
excludeOf = true;
break;
// User inputs
case "-ae":
case "--add-ext":
i++;
addext = args[i];
break;
case "-au":
case "--author":
i++;
author = args[i];
break;
case "-ca":
case "--category=":
i++;
category = args[i];
break;
case "-co":
case "--comment":
i++;
comment = args[i];
break;
case "-crc":
case "--crc":
i++;
crc = args[i];
break;
case "-da":
case "--date":
i++;
date = args[i];
break;
case "-de":
case "--desc":
i++;
description = args[i];
break;
case "-em":
case "--email":
i++;
email = args[i];
break;
case "-exta":
case "--exta":
i++;
exta = args[i];
break;
case "-extb":
case "--extb":
i++;
extb = args[i];
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 "-he":
case "--header":
i++;
header = args[i];
break;
case "-hp":
case "--homepage":
i++;
homepage = args[i];
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 "-is":
case "--status":
i++;
status = args[i];
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 "-out":
case "--out":
i++;
outDir = args[i];
break;
case "-post":
case "--postfix":
i++;
postfix = args[i];
break;
case "-pre":
case "--prefix":
i++;
prefix = args[i];
break;
case "-rd": case "-rd":
case "--root-dir": case "--root-dir":
i++; i++;
root = args[i]; root = args[i];
break; break;
case "-re":
case "--restore":
restore = true;
break;
case "-rep": case "-rep":
case "--rep-ext": case "--rep-ext":
i++; i++;
repext = args[i]; repext = args[i];
break; break;
case "-rme":
case "--rem-ext":
remext = true;
break;
case "-rn": case "-rn":
case "--rom-name": case "--rom-name":
i++; i++;
romname = args[i]; romname = args[i];
break; break;
case "-ro":
case "--romba":
romba = true;
break;
case "-root": case "-root":
case "--root": case "--root":
i++; i++;
@@ -494,19 +529,11 @@ namespace SabreTools
i++; i++;
romtype = args[i]; romtype = args[i];
break; break;
case "-sd":
case "--superdat":
superdat = true;
break;
case "-seq": case "-seq":
case "--equal": case "--equal":
i++; i++;
seq = GetSizeFromString(args[i]); seq = GetSizeFromString(args[i]);
break; break;
case "-sf":
case "--skip":
skip = true;
break;
case "-sgt": case "-sgt":
case "--greater": case "--greater":
i++; i++;
@@ -517,59 +544,27 @@ namespace SabreTools
i++; i++;
sha1 = args[i]; sha1 = args[i];
break; break;
case "-si":
case "--single":
single = true;
break;
case "-sl":
case "--softlist":
softlist = true;
break;
case "-slt": case "-slt":
case "--less": case "--less":
i++; i++;
slt = GetSizeFromString(args[i]); slt = GetSizeFromString(args[i]);
break; break;
case "-st":
case "--stats":
stats = true;
break;
case "-t": case "-t":
case "--temp": case "--temp":
i++; i++;
tempDir = args[i]; tempDir = args[i];
break; break;
case "-trim":
case "--trim":
trim = true;
break;
case "-ts":
case "--type-split":
splitByType = true;
break;
case "-tsv":
case "--tsv":
statOutputFormat = StatOutputFormat.TSV;
break;
case "-u": case "-u":
case "-url": case "-url":
case "--url": case "--url":
i++; i++;
url = args[i]; url = args[i];
break; break;
case "-ud":
case "--update":
update = true;
break;
case "-v": case "-v":
case "--version": case "--version":
i++; i++;
version = args[i]; version = args[i];
break; break;
case "-xof":
case "--exclude-of":
excludeOf = true;
break;
default: default:
string temparg = args[i].Replace("\"", "").Replace("file://", ""); string temparg = args[i].Replace("\"", "").Replace("file://", "");

View File

@@ -40,18 +40,22 @@ namespace SabreTools
// Output the title // Output the title
Build.Start("SimpleSort"); Build.Start("SimpleSort");
// Set all default values // Feature flags
bool help = false, bool help = false,
convert = false, simpleSort = true;
// User flags
bool convert = false,
date = false, date = false,
delete = false, delete = false,
quickScan = false, quickScan = false,
romba = false, romba = false,
simpleSort = true,
toFolder = false, toFolder = false,
tgz = false, tgz = false,
updateDat = false, updateDat = false,
verify = false; verify = false;
// User inputs
int sevenzip = 0, int sevenzip = 0,
gz = 2, gz = 2,
rar = 2, rar = 2,
@@ -67,19 +71,18 @@ namespace SabreTools
{ {
switch (args[i]) switch (args[i])
{ {
// Feature flags
case "-?": case "-?":
case "-h": case "-h":
case "--help": case "--help":
help = true; help = true;
break; break;
case "-7z": case "-ss":
case "--7z": case "--sort":
i++; simpleSort = true;
if (!Int32.TryParse(args[i], out sevenzip))
{
sevenzip = 0;
}
break; break;
// User flags
case "-ad": case "-ad":
case "--add-date": case "--add-date":
date = true; date = true;
@@ -92,6 +95,40 @@ namespace SabreTools
case "--delete": case "--delete":
delete = true; delete = true;
break; break;
case "-do":
case "--directory":
toFolder = true;
break;
case "-qs":
case "--quick":
quickScan = true;
break;
case "-r":
case "--romba":
romba = true;
break;
case "-tgz":
case "--tgz":
tgz = true;
break;
case "-ud":
case "--updated-dat":
updateDat = true;
break;
case "-v":
case "--verify":
verify = true;
break;
// User inputs
case "-7z":
case "--7z":
i++;
if (!Int32.TryParse(args[i], out sevenzip))
{
sevenzip = 0;
}
break;
case "-dat": case "-dat":
case "--dat": case "--dat":
i++; i++;
@@ -105,10 +142,6 @@ namespace SabreTools
} }
datfiles.Add(args[i]); datfiles.Add(args[i]);
break; break;
case "-do":
case "--directory":
toFolder = true;
break;
case "-gz": case "-gz":
case "--gz": case "--gz":
i++; i++;
@@ -127,14 +160,6 @@ namespace SabreTools
i++; i++;
outDir = args[i]; outDir = args[i];
break; break;
case "-qs":
case "--quick":
quickScan = true;
break;
case "-r":
case "--romba":
romba = true;
break;
case "-rar": case "-rar":
case "--rar": case "--rar":
i++; i++;
@@ -148,18 +173,6 @@ namespace SabreTools
i++; i++;
tempDir = args[i]; tempDir = args[i];
break; break;
case "-tgz":
case "--tgz":
tgz = true;
break;
case "-ud":
case "--updated-dat":
updateDat = true;
break;
case "-v":
case "--verify":
verify = true;
break;
case "-zip": case "-zip":
case "--zip": case "--zip":
i++; i++;