mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[SabreTools] Add undocumented links to SimpleSort
This commit is contained in:
@@ -128,7 +128,7 @@ namespace SabreTools.Helper
|
||||
helptext.Add(" -osl, --output-sl Output in Softwarelist format");
|
||||
helptext.Add(" -otsv, --output-tsv Output in TSV format");
|
||||
helptext.Add(" -ox, --output-xml Output in Logiqx XML format");
|
||||
helptext.Add(" -gz, --gz-files Allow reading of GZIP files as archives");
|
||||
helptext.Add(" -gzf, --gz-files Allow reading of GZIP files as archives");
|
||||
helptext.Add(" -ro, --romba Read files from a Romba input");
|
||||
helptext.Add(" -f=, --filename= Set the external name of the DAT");
|
||||
helptext.Add(" -n=, --name= Set the internal name of the DAT");
|
||||
|
||||
@@ -1006,7 +1006,7 @@ Below are originally from SabreTools / DATabase -
|
||||
-ox, -output-xml Output in Logiqx XML format (default)
|
||||
Add outputting the created DAT to Logiqx XML format
|
||||
|
||||
-gz, -gz-files Allow reading of GZIP files as archives
|
||||
-gzf, -gz-files Allow reading of GZIP files as archives
|
||||
Since GZip files are not commonly used for file storage, this flag allows for
|
||||
any GZip archives to have their contents hashed instead.
|
||||
|
||||
|
||||
@@ -24,27 +24,26 @@ namespace SabreTools
|
||||
/// <param name="gz">Integer representing the archive handling level for GZip</param>
|
||||
/// <param name="rar">Integer representing the archive handling level for RAR</param>
|
||||
/// <param name="zip">Integer representing the archive handling level for Zip</param>
|
||||
/// <param name="logger">Logger object for file and console output</param>
|
||||
public static bool InitConvertFolder(List<string> datfiles, List<string> inputs, string outDir, string tempDir, bool delete,
|
||||
bool tgz, bool romba, int sevenzip, int gz, int rar, int zip, Logger logger)
|
||||
bool tgz, bool romba, int sevenzip, int gz, int rar, int zip)
|
||||
{
|
||||
// Get the archive scanning level
|
||||
ArchiveScanLevel asl = ArchiveTools.GetArchiveScanLevelFromNumbers(sevenzip, gz, rar, zip);
|
||||
|
||||
DateTime start = DateTime.Now;
|
||||
logger.User("Populating internal DAT...");
|
||||
_logger.User("Populating internal DAT...");
|
||||
|
||||
// Add all of the input DATs into one huge internal DAT
|
||||
DatFile datdata = new DatFile();
|
||||
foreach (string datfile in datfiles)
|
||||
{
|
||||
datdata.Parse(datfile, 99, 99, logger, keep: true, softlist: true);
|
||||
datdata.Parse(datfile, 99, 99, _logger, keep: true, softlist: true);
|
||||
}
|
||||
logger.User("Populating complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
||||
_logger.User("Populating complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
||||
|
||||
// Get all individual files from the inputs
|
||||
start = DateTime.Now;
|
||||
logger.User("Organizing input files...");
|
||||
_logger.User("Organizing input files...");
|
||||
List<string> newinputs = new List<string>();
|
||||
foreach (string input in inputs)
|
||||
{
|
||||
@@ -60,10 +59,10 @@ namespace SabreTools
|
||||
}
|
||||
}
|
||||
}
|
||||
logger.User("Organizing complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
||||
_logger.User("Organizing complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
||||
|
||||
SimpleSort ss = new SimpleSort(datdata, newinputs, outDir, tempDir, false, false,
|
||||
false, false, delete, tgz, romba, asl, false, null, logger);
|
||||
false, false, delete, tgz, romba, asl, false, null, _logger);
|
||||
return ss.Convert();
|
||||
}
|
||||
|
||||
@@ -310,26 +309,25 @@ namespace SabreTools
|
||||
/// <param name="zip">Integer representing the archive handling level for Zip</param>
|
||||
/// <param name="updateDat">True if the updated DAT should be output, false otherwise</param>
|
||||
/// <param name="headerToCheckAgainst">Populated string representing the name of the skipper to use, a blank string to use the first available checker, null otherwise</param>
|
||||
/// <param name="logger">Logger object for file and console output</param>
|
||||
private static void InitSortVerify(List<string> datfiles, List<string> inputs, string outDir, string tempDir, bool quickScan, bool date,
|
||||
bool toFolder, bool verify, bool delete, bool tgz, bool romba, int sevenzip, int gz, int rar, int zip, bool updateDat, string headerToCheckAgainst, Logger logger)
|
||||
bool toFolder, bool verify, bool delete, bool tgz, bool romba, int sevenzip, int gz, int rar, int zip, bool updateDat, string headerToCheckAgainst)
|
||||
{
|
||||
// Get the archive scanning level
|
||||
ArchiveScanLevel asl = ArchiveTools.GetArchiveScanLevelFromNumbers(sevenzip, gz, rar, zip);
|
||||
|
||||
DateTime start = DateTime.Now;
|
||||
logger.User("Populating internal DAT...");
|
||||
_logger.User("Populating internal DAT...");
|
||||
|
||||
// Add all of the input DATs into one huge internal DAT
|
||||
DatFile datdata = new DatFile();
|
||||
foreach (string datfile in datfiles)
|
||||
{
|
||||
datdata.Parse(datfile, 99, 99, logger, keep: true, softlist: true);
|
||||
datdata.Parse(datfile, 99, 99, _logger, keep: true, softlist: true);
|
||||
}
|
||||
logger.User("Populating complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
||||
_logger.User("Populating complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff"));
|
||||
|
||||
SimpleSort ss = new SimpleSort(datdata, inputs, outDir, tempDir, quickScan, date,
|
||||
toFolder, verify, delete, tgz, romba, asl, updateDat, headerToCheckAgainst, logger);
|
||||
toFolder, verify, delete, tgz, romba, asl, updateDat, headerToCheckAgainst, _logger);
|
||||
ss.StartProcessing();
|
||||
}
|
||||
|
||||
|
||||
@@ -48,13 +48,16 @@ namespace SabreTools
|
||||
|
||||
// Feature flags
|
||||
bool help = false,
|
||||
convert = false, // SimpleSort
|
||||
datFromDir = false,
|
||||
headerer = false,
|
||||
sort = false, // SimpleSort
|
||||
splitByExt = false,
|
||||
splitByHash = false,
|
||||
splitByType = false,
|
||||
stats = false,
|
||||
update = false;
|
||||
update = false,
|
||||
verify = false; // SimpleSort
|
||||
|
||||
// User flags
|
||||
bool addBlankFilesForEmptyFolder = false,
|
||||
@@ -63,6 +66,7 @@ namespace SabreTools
|
||||
copyFiles = false,
|
||||
datPrefix = false,
|
||||
dedup = false,
|
||||
delete = false, // SimpleSort
|
||||
enableGzip = false,
|
||||
excludeOf = false,
|
||||
inplace = false,
|
||||
@@ -70,6 +74,7 @@ namespace SabreTools
|
||||
noMD5 = false,
|
||||
noSHA1 = false,
|
||||
parseArchivesAsFiles = false,
|
||||
quickScan = false, // SimpleSort
|
||||
quotes = false,
|
||||
remext = false,
|
||||
removeDateFromAutomaticName = false,
|
||||
@@ -80,15 +85,22 @@ namespace SabreTools
|
||||
single = false,
|
||||
softlist = false,
|
||||
superdat = false,
|
||||
tgz = false, // SimpleSort
|
||||
toFolder = false, // SimpleSort
|
||||
trim = false,
|
||||
skip = false,
|
||||
updateDat = false, // SimpleSort
|
||||
usegame = true;
|
||||
DiffMode diffMode = 0x0;
|
||||
OutputFormat outputFormat = 0x0;
|
||||
StatOutputFormat statOutputFormat = StatOutputFormat.None;
|
||||
|
||||
// User inputs
|
||||
int maxParallelism = 4;
|
||||
int gz = 2, // SimpleSort
|
||||
maxParallelism = 4,
|
||||
rar = 2, // SimpleSort
|
||||
sevenzip = 0, // SimpleSort
|
||||
zip = 0; // SimpleSort
|
||||
long sgt = -1,
|
||||
slt = -1,
|
||||
seq = -1;
|
||||
@@ -124,6 +136,7 @@ namespace SabreTools
|
||||
tempDir = "",
|
||||
url = null,
|
||||
version = null;
|
||||
List<string> datfiles = new List<string>(); // SimpleSort
|
||||
List<string> inputs = new List<string>();
|
||||
|
||||
// Determine which switches are enabled (with values if necessary)
|
||||
@@ -137,6 +150,10 @@ namespace SabreTools
|
||||
case "--help":
|
||||
help = true;
|
||||
break;
|
||||
case "-cv":
|
||||
case "--convert":
|
||||
convert = true;
|
||||
break;
|
||||
case "-d":
|
||||
case "--d2d":
|
||||
case "--dfd":
|
||||
@@ -154,6 +171,10 @@ namespace SabreTools
|
||||
case "--hash-split":
|
||||
splitByHash = true;
|
||||
break;
|
||||
case "-ss":
|
||||
case "--sort":
|
||||
sort = true;
|
||||
break;
|
||||
case "-st":
|
||||
case "--stats":
|
||||
stats = true;
|
||||
@@ -162,6 +183,10 @@ namespace SabreTools
|
||||
case "--type-split":
|
||||
splitByType = true;
|
||||
break;
|
||||
case "-ve":
|
||||
case "--verify":
|
||||
verify = true;
|
||||
break;
|
||||
|
||||
// User flags
|
||||
case "-ab":
|
||||
@@ -200,6 +225,10 @@ namespace SabreTools
|
||||
case "--dedup":
|
||||
dedup = true;
|
||||
break;
|
||||
case "-del":
|
||||
case "--delete":
|
||||
delete = true;
|
||||
break;
|
||||
case "-di":
|
||||
case "--diff":
|
||||
diffMode |= DiffMode.All;
|
||||
@@ -216,6 +245,10 @@ namespace SabreTools
|
||||
case "--diff-nd":
|
||||
diffMode |= DiffMode.NoDupes;
|
||||
break;
|
||||
case "-do":
|
||||
case "--directory":
|
||||
toFolder = true;
|
||||
break;
|
||||
case "-f":
|
||||
case "--files":
|
||||
parseArchivesAsFiles = true;
|
||||
@@ -224,7 +257,7 @@ namespace SabreTools
|
||||
case "--game-prefix":
|
||||
datPrefix = true;
|
||||
break;
|
||||
case "-gz":
|
||||
case "-gzf":
|
||||
case "--gz-files":
|
||||
enableGzip = true;
|
||||
break;
|
||||
@@ -312,6 +345,10 @@ namespace SabreTools
|
||||
case "--quotes":
|
||||
quotes = true;
|
||||
break;
|
||||
case "-qs":
|
||||
case "--quick":
|
||||
quickScan = true;
|
||||
break;
|
||||
case "-r":
|
||||
case "--roms":
|
||||
usegame = false;
|
||||
@@ -348,6 +385,10 @@ namespace SabreTools
|
||||
case "--softlist":
|
||||
softlist = true;
|
||||
break;
|
||||
case "-tgz":
|
||||
case "--tgz":
|
||||
tgz = true;
|
||||
break;
|
||||
case "-trim":
|
||||
case "--trim":
|
||||
trim = true;
|
||||
@@ -360,12 +401,24 @@ namespace SabreTools
|
||||
case "--update":
|
||||
update = true;
|
||||
break;
|
||||
case "-upd":
|
||||
case "--updated-dat":
|
||||
updateDat = true;
|
||||
break;
|
||||
case "-xof":
|
||||
case "--exclude-of":
|
||||
excludeOf = true;
|
||||
break;
|
||||
|
||||
// User inputs
|
||||
case "-7z":
|
||||
case "--7z":
|
||||
i++;
|
||||
if (!Int32.TryParse(args[i], out sevenzip))
|
||||
{
|
||||
sevenzip = 0;
|
||||
}
|
||||
break;
|
||||
case "-ae":
|
||||
case "--add-ext":
|
||||
i++;
|
||||
@@ -396,6 +449,19 @@ namespace SabreTools
|
||||
i++;
|
||||
date = args[i];
|
||||
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 "-de":
|
||||
case "--desc":
|
||||
i++;
|
||||
@@ -441,6 +507,14 @@ namespace SabreTools
|
||||
i++;
|
||||
gamename = args[i];
|
||||
break;
|
||||
case "-gz":
|
||||
case "--gz":
|
||||
i++;
|
||||
if (!Int32.TryParse(args[i], out gz))
|
||||
{
|
||||
gz = 2;
|
||||
}
|
||||
break;
|
||||
case "-he":
|
||||
case "--header":
|
||||
i++;
|
||||
@@ -504,6 +578,14 @@ namespace SabreTools
|
||||
i++;
|
||||
prefix = args[i];
|
||||
break;
|
||||
case "-rar":
|
||||
case "--rar":
|
||||
i++;
|
||||
if (!Int32.TryParse(args[i], out rar))
|
||||
{
|
||||
rar = 2;
|
||||
}
|
||||
break;
|
||||
case "-rd":
|
||||
case "--root-dir":
|
||||
i++;
|
||||
@@ -565,6 +647,14 @@ namespace SabreTools
|
||||
i++;
|
||||
version = args[i];
|
||||
break;
|
||||
case "-zip":
|
||||
case "--zip":
|
||||
i++;
|
||||
if (!Int32.TryParse(args[i], out zip))
|
||||
{
|
||||
zip = 0;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
string temparg = args[i].Replace("\"", "").Replace("file://", "");
|
||||
|
||||
@@ -579,6 +669,13 @@ namespace SabreTools
|
||||
|
||||
switch (split[0])
|
||||
{
|
||||
case "-7z":
|
||||
case "--7z":
|
||||
if (!Int32.TryParse(split[1], out sevenzip))
|
||||
{
|
||||
sevenzip = 0;
|
||||
}
|
||||
break;
|
||||
case "-ae":
|
||||
case "--add-ext":
|
||||
addext = split[1];
|
||||
@@ -603,6 +700,18 @@ namespace SabreTools
|
||||
case "--date":
|
||||
date = split[1];
|
||||
break;
|
||||
case "-dat":
|
||||
case "--dat":
|
||||
if (!File.Exists(split[1]))
|
||||
{
|
||||
_logger.Error("DAT must be a valid file: " + split[1]);
|
||||
Console.WriteLine();
|
||||
Build.Help();
|
||||
_logger.Close();
|
||||
return;
|
||||
}
|
||||
datfiles.Add(split[1]);
|
||||
break;
|
||||
case "-de":
|
||||
case "--desc":
|
||||
description = split[1];
|
||||
@@ -639,6 +748,13 @@ namespace SabreTools
|
||||
case "--game-name":
|
||||
gamename = split[1];
|
||||
break;
|
||||
case "-gz":
|
||||
case "--gz":
|
||||
if (!Int32.TryParse(split[1], out gz))
|
||||
{
|
||||
gz = 2;
|
||||
}
|
||||
break;
|
||||
case "-h":
|
||||
case "--header":
|
||||
header = split[1];
|
||||
@@ -696,6 +812,13 @@ namespace SabreTools
|
||||
case "--root":
|
||||
rootdir = split[1];
|
||||
break;
|
||||
case "-rar":
|
||||
case "--rar":
|
||||
if (!Int32.TryParse(split[1], out rar))
|
||||
{
|
||||
rar = 2;
|
||||
}
|
||||
break;
|
||||
case "-rd":
|
||||
case "--root-dir":
|
||||
root = split[1];
|
||||
@@ -741,6 +864,13 @@ namespace SabreTools
|
||||
case "--version":
|
||||
version = 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))
|
||||
{
|
||||
@@ -806,8 +936,15 @@ namespace SabreTools
|
||||
|
||||
// Now take care of each mode in succesion
|
||||
|
||||
// Convert a folder to TGZ or TorrentZip
|
||||
if (convert)
|
||||
{
|
||||
InitConvertFolder(datfiles, inputs, outDir, tempDir, delete, tgz, romba, sevenzip,
|
||||
gz, rar, zip);
|
||||
}
|
||||
|
||||
// Create a DAT from a directory or set of directories
|
||||
if (datFromDir)
|
||||
else if (datFromDir)
|
||||
{
|
||||
InitDatFromDir(inputs,
|
||||
filename,
|
||||
@@ -841,6 +978,13 @@ namespace SabreTools
|
||||
InitHeaderer(inputs, restore, outDir);
|
||||
}
|
||||
|
||||
// If we're using the sorter
|
||||
else if (sort)
|
||||
{
|
||||
InitSortVerify(datfiles, inputs, outDir, tempDir, quickScan, addFileDates, toFolder,
|
||||
verify, delete, tgz, romba, sevenzip, gz, rar, zip, updateDat, header);
|
||||
}
|
||||
|
||||
// Split a DAT by extension
|
||||
else if (splitByExt)
|
||||
{
|
||||
@@ -853,18 +997,18 @@ namespace SabreTools
|
||||
InitHashSplit(inputs, outDir);
|
||||
}
|
||||
|
||||
// Get statistics on input files
|
||||
else if (stats)
|
||||
{
|
||||
InitStats(inputs, filename, single, showBaddumpColumn, showNodumpColumn, statOutputFormat);
|
||||
}
|
||||
|
||||
// Split a DAT by item type
|
||||
else if (splitByType)
|
||||
{
|
||||
InitTypeSplit(inputs, outDir);
|
||||
}
|
||||
|
||||
// Get statistics on input files
|
||||
else if (stats)
|
||||
{
|
||||
InitStats(inputs, filename, single, showBaddumpColumn, showNodumpColumn, statOutputFormat);
|
||||
}
|
||||
|
||||
// Convert, update, merge, diff, and filter a DAT or folder of DATs
|
||||
else if (update)
|
||||
{
|
||||
@@ -874,6 +1018,13 @@ namespace SabreTools
|
||||
romtype, sgt, slt, seq, crc, md5, sha1, status, trim, single, root, outDir, cleanGameNames, softlist, dedup, maxParallelism);
|
||||
}
|
||||
|
||||
// If we're using the verifier
|
||||
else if (verify)
|
||||
{
|
||||
InitSortVerify(datfiles, inputs, outDir, tempDir, quickScan, addFileDates, toFolder,
|
||||
verify, delete, tgz, romba, sevenzip, gz, rar, zip, updateDat, header);
|
||||
}
|
||||
|
||||
// If nothing is set, show the help
|
||||
else
|
||||
{
|
||||
|
||||
@@ -42,18 +42,18 @@ namespace SabreTools
|
||||
|
||||
// Feature flags
|
||||
bool help = false,
|
||||
simpleSort = true;
|
||||
convert = false,
|
||||
sort = true,
|
||||
verify = false;
|
||||
|
||||
// User flags
|
||||
bool convert = false,
|
||||
date = false,
|
||||
bool date = false,
|
||||
delete = false,
|
||||
quickScan = false,
|
||||
romba = false,
|
||||
toFolder = false,
|
||||
tgz = false,
|
||||
updateDat = false,
|
||||
verify = false;
|
||||
updateDat = false;
|
||||
|
||||
// User inputs
|
||||
int sevenzip = 0,
|
||||
@@ -63,8 +63,8 @@ namespace SabreTools
|
||||
string header = "",
|
||||
outDir = "",
|
||||
tempDir = "";
|
||||
List<string> inputs = new List<string>();
|
||||
List<string> datfiles = new List<string>();
|
||||
List<string> inputs = new List<string>();
|
||||
|
||||
// Determine which switches are enabled (with values if necessary)
|
||||
for (int i = 0; i < args.Length; i++)
|
||||
@@ -77,9 +77,17 @@ namespace SabreTools
|
||||
case "--help":
|
||||
help = true;
|
||||
break;
|
||||
case "-c":
|
||||
case "--convert":
|
||||
convert = true;
|
||||
break;
|
||||
case "-ss":
|
||||
case "--sort":
|
||||
simpleSort = true;
|
||||
sort = true;
|
||||
break;
|
||||
case "-v":
|
||||
case "--verify":
|
||||
verify = true;
|
||||
break;
|
||||
|
||||
// User flags
|
||||
@@ -87,10 +95,6 @@ namespace SabreTools
|
||||
case "--add-date":
|
||||
date = true;
|
||||
break;
|
||||
case "-c":
|
||||
case "--convert":
|
||||
convert = true;
|
||||
break;
|
||||
case "-d":
|
||||
case "--delete":
|
||||
delete = true;
|
||||
@@ -115,10 +119,6 @@ namespace SabreTools
|
||||
case "--updated-dat":
|
||||
updateDat = true;
|
||||
break;
|
||||
case "-v":
|
||||
case "--verify":
|
||||
verify = true;
|
||||
break;
|
||||
|
||||
// User inputs
|
||||
case "-7z":
|
||||
@@ -292,7 +292,7 @@ namespace SabreTools
|
||||
}
|
||||
|
||||
// If a switch that requires a filename is set and no file is, show the help screen
|
||||
if (inputs.Count == 0 && ((simpleSort && !verify) || convert))
|
||||
if (inputs.Count == 0 && ((sort && !verify) || convert))
|
||||
{
|
||||
logger.Error("This feature requires at least one input");
|
||||
Build.Help();
|
||||
@@ -308,7 +308,7 @@ namespace SabreTools
|
||||
}
|
||||
|
||||
// If we are doing a simple sort
|
||||
else if (simpleSort)
|
||||
else if (sort)
|
||||
{
|
||||
if (datfiles.Count > 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user