[Build] Add subset system to help

This commit is contained in:
Matt Nadareski
2017-01-31 22:55:31 -08:00
parent 8ac2276475
commit 301e67a9d8

View File

@@ -61,12 +61,18 @@ namespace SabreTools.Helper.Data
/// Show the help dialog for a given class /// Show the help dialog for a given class
/// </summary> /// </summary>
/// <param name="className">Name of the class to get help for, "Credits" for developer credits</param> /// <param name="className">Name of the class to get help for, "Credits" for developer credits</param>
public static void Help(string className) public static void Help(string className, string subset = null)
{ {
//http://stackoverflow.com/questions/14849367/how-to-determine-calling-method-and-class-name //http://stackoverflow.com/questions/14849367/how-to-determine-calling-method-and-class-name
string barrier = "-----------------------------------------"; string barrier = "-----------------------------------------";
List<string> helptext = new List<string>(); List<string> helptext = new List<string>();
// Normalize the subset text
if (subset != null)
{
subset = subset.ToLowerInvariant().TrimStart('-');
}
// Set the help text // Set the help text
switch (className) switch (className)
{ {
@@ -149,278 +155,321 @@ namespace SabreTools.Helper.Data
helptext.Add(" --script Enable script mode (no clear screen)"); helptext.Add(" --script Enable script mode (no clear screen)");
// DATFromDir // DATFromDir
helptext.Add(" -d, --dfd, --d2d Create a DAT from an input directory"); if (subset == null || subset == "d" || subset == "dfd" || subset == "d2d")
helptext.Add(" -nm, --noMD5 Don't include MD5 in output"); {
helptext.Add(" -ns, --noSHA1 Don't include SHA1 in output"); helptext.Add(" -d, --dfd, --d2d Create a DAT from an input directory");
helptext.Add(" -b, --bare Don't include date in file name"); helptext.Add(" -nm, --noMD5 Don't include MD5 in output");
helptext.Add(" -fp=, --forcepack= Set force packing"); helptext.Add(" -ns, --noSHA1 Don't include SHA1 in output");
helptext.Add(" Supported values are:"); helptext.Add(" -b, --bare Don't include date in file name");
helptext.Add(" None, Zip, Unzip"); helptext.Add(" -fp=, --forcepack= Set force packing");
helptext.Add(" -f, --files Treat archives as files"); helptext.Add(" Supported values are:");
helptext.Add(" -oa, --output-all Output in all formats"); helptext.Add(" None, Zip, Unzip");
helptext.Add(" -oam, --output-am Output in AttractMode format"); helptext.Add(" -f, --files Treat archives as files");
helptext.Add(" -oc, --output-cmp Output in CMP format"); helptext.Add(" -oa, --output-all Output in all formats");
helptext.Add(" -ocsv, --output-csv Output in CSV format"); helptext.Add(" -oam, --output-am Output in AttractMode format");
helptext.Add(" -od, --output-dc Output in DOSCenter format"); helptext.Add(" -oc, --output-cmp Output in CMP format");
helptext.Add(" -om, --output-miss Output in Missfile format"); helptext.Add(" -ocsv, --output-csv Output in CSV format");
helptext.Add(" -omd5, --output-md5 Output in MD5 format"); helptext.Add(" -od, --output-dc Output in DOSCenter format");
helptext.Add(" -ool, --output-ol Output in OfflineList format"); helptext.Add(" -om, --output-miss Output in Missfile format");
helptext.Add(" -or, --output-rc Output in RomCenter format"); helptext.Add(" -omd5, --output-md5 Output in MD5 format");
helptext.Add(" -os, --output-sd Output in SabreDAT format"); helptext.Add(" -ool, --output-ol Output in OfflineList format");
helptext.Add(" -osfv, --ouput-sfv Output in SFV format"); helptext.Add(" -or, --output-rc Output in RomCenter format");
helptext.Add(" -osha1, --output-sha1 Output in SHA-1 format"); helptext.Add(" -os, --output-sd Output in SabreDAT format");
helptext.Add(" -osl, --output-sl Output in Softwarelist format"); helptext.Add(" -osfv, --ouput-sfv Output in SFV format");
helptext.Add(" -otsv, --output-tsv Output in TSV format"); helptext.Add(" -osha1, --output-sha1 Output in SHA-1 format");
helptext.Add(" -ox, --output-xml Output in Logiqx XML format [default]"); helptext.Add(" -osl, --output-sl Output in Softwarelist format");
helptext.Add(" -gzf, --gz-files Allow reading of GZIP files as archives"); helptext.Add(" -otsv, --output-tsv Output in TSV format");
helptext.Add(" -ro, --romba Read files from a Romba input"); helptext.Add(" -ox, --output-xml Output in Logiqx XML format [default]");
helptext.Add(" -f=, --filename= Set the external name of the DAT"); helptext.Add(" -gzf, --gz-files Allow reading of GZIP files as archives");
helptext.Add(" -n=, --name= Set the internal name of the DAT"); helptext.Add(" -ro, --romba Read files from a Romba input");
helptext.Add(" -de=, --desc= Set the description of the DAT"); helptext.Add(" -f=, --filename= Set the external name of the DAT");
helptext.Add(" -c=, --cat= Set the category of the DAT"); helptext.Add(" -n=, --name= Set the internal name of the DAT");
helptext.Add(" -v=, --version= Set the version of the DAT"); helptext.Add(" -de=, --desc= Set the description of the DAT");
helptext.Add(" -au=, --author= Set the author of the DAT"); helptext.Add(" -c=, --cat= Set the category of the DAT");
helptext.Add(" -sd, --superdat Enable SuperDAT creation"); helptext.Add(" -v=, --version= Set the version of the DAT");
helptext.Add(" -xof, --exclude-of Exclude romof, cloneof, sampleof tags"); helptext.Add(" -au=, --author= Set the author of the DAT");
helptext.Add(" -ab, --add-blank Output blank files for folders"); helptext.Add(" -sd, --superdat Enable SuperDAT creation");
helptext.Add(" -ad, --add-date Output dates for each file parsed"); helptext.Add(" -xof, --exclude-of Exclude romof, cloneof, sampleof tags");
helptext.Add(" -cf, --copy-files Copy files to the temp directory before parsing"); helptext.Add(" -ab, --add-blank Output blank files for folders");
helptext.Add(" -h=, --header= Set a header skipper to use, blank means all"); helptext.Add(" -ad, --add-date Output dates for each file parsed");
helptext.Add(" -t=, --temp= Set the temporary directory to use"); helptext.Add(" -cf, --copy-files Copy files to the temp directory before parsing");
helptext.Add(" -mt={4} Amount of threads to use (-1 unlimted)"); helptext.Add(" -h=, --header= Set a header skipper to use, blank means all");
helptext.Add(" -t=, --temp= Set the temporary directory to use");
helptext.Add(" -mt={4} Amount of threads to use (-1 unlimted)");
}
// Extension Split // Extension Split
helptext.Add(" -es, --ext-split Split a DAT by two file extensions"); if (subset == null || subset == "es" || subset == "ext-split")
helptext.Add(" -exta= First set of extensions (comma-separated)"); {
helptext.Add(" -extb= Second set of extensions (comma-separated)"); helptext.Add(" -es, --ext-split Split a DAT by two file extensions");
helptext.Add(" -out= Output directory"); helptext.Add(" -exta= First set of extensions (comma-separated)");
helptext.Add(" -extb= Second set of extensions (comma-separated)");
helptext.Add(" -out= Output directory");
}
// Extract and Remove Headers // Extract and Remove Headers
helptext.Add(" -ex, --extract Extract and remove copier headers"); if (subset == null || subset == "ex" || subset == "extract")
helptext.Add(" -out= Output directory"); {
helptext.Add(" -ex, --extract Extract and remove copier headers");
helptext.Add(" -out= Output directory");
}
// Hash Split // Hash Split
helptext.Add(" -hs, --hash-split Split a DAT or folder by best-available hashes"); if (subset == null || subset == "hs" || subset == "hash-split")
helptext.Add(" -out= Output directory"); {
helptext.Add(" -hs, --hash-split Split a DAT or folder by best-available hashes");
helptext.Add(" -out= Output directory");
}
// Level/SuperDAT Split // Level/SuperDAT Split
helptext.Add(" -ls, --lvl-split Split a SuperDAT or folder by internal path"); if (subset == null || subset == "ls" || subset == "lvl-split")
helptext.Add(" -out= Output directory"); {
helptext.Add(" -s, --short Use short output names"); helptext.Add(" -ls, --lvl-split Split a SuperDAT or folder by internal path");
helptext.Add(" -ba, --base Use source DAT as base name for outputs"); helptext.Add(" -out= Output directory");
helptext.Add(" -s, --short Use short output names");
helptext.Add(" -ba, --base Use source DAT as base name for outputs");
}
// Restore Headers // Restore Headers
helptext.Add(" -re, --restore Restore header to file based on SHA-1"); if (subset == null || subset == "re" || subset == "restore")
helptext.Add(" -out= Output directory"); {
helptext.Add(" -re, --restore Restore header to file based on SHA-1");
helptext.Add(" -out= Output directory");
}
// Sort // Sort
helptext.Add(" -ss, --sort Sort input files by a set of DATs"); if (subset == null || subset == "ss" || subset == "sort")
helptext.Add(" -dat= Input DAT to rebuild against"); {
helptext.Add(" -out= Output directory"); helptext.Add(" -ss, --sort Sort input files by a set of DATs");
helptext.Add(" -t=, --temp= Set the temporary directory to use"); helptext.Add(" -dat= Input DAT to rebuild against");
helptext.Add(" -del, --delete Delete fully rebuilt input files"); helptext.Add(" -out= Output directory");
helptext.Add(" -in, --inverse Rebuild only files not in DAT"); helptext.Add(" -t=, --temp= Set the temporary directory to use");
helptext.Add(" -qs, --quick Enable quick scanning of archives"); helptext.Add(" -del, --delete Delete fully rebuilt input files");
helptext.Add(" -ad, --add-date Add original dates from DAT, if possible"); helptext.Add(" -in, --inverse Rebuild only files not in DAT");
//helptext.Add(" -t7z Enable Torrent7z output"); helptext.Add(" -qs, --quick Enable quick scanning of archives");
helptext.Add(" -tar Enable TAR output"); helptext.Add(" -ad, --add-date Add original dates from DAT, if possible");
helptext.Add(" -tgz Enable TorrentGZ output"); //helptext.Add(" -t7z Enable Torrent7z output");
helptext.Add(" -r, --romba Enable Romba depot dir output"); helptext.Add(" -tar Enable TAR output");
//helptext.Add(" -tlrz Enable TorrentLRZ output"); helptext.Add(" -tgz Enable TorrentGZ output");
//helptext.Add(" -trar Enable TorrentRAR output"); helptext.Add(" -r, --romba Enable Romba depot dir output");
//helptext.Add(" -txz Enable TorrentXZ output"); //helptext.Add(" -tlrz Enable TorrentLRZ output");
helptext.Add(" -tzip Enable TorrentZip output"); //helptext.Add(" -trar Enable TorrentRAR output");
helptext.Add(" -h=, --header= Set a header skipper to use, blank means all"); //helptext.Add(" -txz Enable TorrentXZ output");
helptext.Add(" -7z={1} Set scanning level for 7z archives"); helptext.Add(" -tzip Enable TorrentZip output");
helptext.Add(" -gz={2} Set scanning level for GZip archives"); helptext.Add(" -h=, --header= Set a header skipper to use, blank means all");
helptext.Add(" -rar={2} Set scanning level for RAR archives"); helptext.Add(" -7z={1} Set scanning level for 7z archives");
helptext.Add(" -zip={1} Set scanning level for ZIP archives"); helptext.Add(" -gz={2} Set scanning level for GZip archives");
helptext.Add(" -ud, --update-dat Output updated DAT to output directory"); helptext.Add(" -rar={2} Set scanning level for RAR archives");
helptext.Add(" -mt={4} Amount of threads to use (-1 unlimted)"); helptext.Add(" -zip={1} Set scanning level for ZIP archives");
helptext.Add(" -ud, --update-dat Output updated DAT to output directory");
helptext.Add(" -mt={4} Amount of threads to use (-1 unlimted)");
}
// Sort Depot // Sort Depot
helptext.Add(" -ssd, --sort Sort input files by a set of DATs"); if (subset == null || subset == "ssd" || subset == "sort-depot")
helptext.Add(" -dat= Input DAT to rebuild against"); {
helptext.Add(" -out= Output directory"); helptext.Add(" -ssd, --sort-depot Sort input files by a set of DATs");
helptext.Add(" -t=, --temp= Set the temporary directory to use"); helptext.Add(" -dat= Input DAT to rebuild against");
helptext.Add(" -del, --delete Delete fully rebuilt input files"); helptext.Add(" -out= Output directory");
helptext.Add(" -in, --inverse Rebuild only files not in DAT"); helptext.Add(" -t=, --temp= Set the temporary directory to use");
helptext.Add(" -ad, --add-date Add original dates from DAT, if possible"); helptext.Add(" -del, --delete Delete fully rebuilt input files");
//helptext.Add(" -t7z Enable Torrent7z output"); helptext.Add(" -in, --inverse Rebuild only files not in DAT");
helptext.Add(" -tar Enable TAR output"); helptext.Add(" -ad, --add-date Add original dates from DAT, if possible");
helptext.Add(" -tgz Enable TorrentGZ output"); //helptext.Add(" -t7z Enable Torrent7z output");
helptext.Add(" -r, --romba Enable Romba depot dir output"); helptext.Add(" -tar Enable TAR output");
//helptext.Add(" -tlrz Enable TorrentLRZ output"); helptext.Add(" -tgz Enable TorrentGZ output");
//helptext.Add(" -trar Enable TorrentRAR output"); helptext.Add(" -r, --romba Enable Romba depot dir output");
//helptext.Add(" -txz Enable TorrentXZ output"); //helptext.Add(" -tlrz Enable TorrentLRZ output");
helptext.Add(" -tzip Enable TorrentZip output"); //helptext.Add(" -trar Enable TorrentRAR output");
helptext.Add(" -h=, --header= Set a header skipper to use, blank means all"); //helptext.Add(" -txz Enable TorrentXZ output");
helptext.Add(" -ud, --update-dat Output updated DAT to output directory"); helptext.Add(" -tzip Enable TorrentZip output");
helptext.Add(" -mt={4} Amount of threads to use (-1 unlimted)"); helptext.Add(" -h=, --header= Set a header skipper to use, blank means all");
helptext.Add(" -ud, --update-dat Output updated DAT to output directory");
helptext.Add(" -mt={4} Amount of threads to use (-1 unlimted)");
}
// Stats // Stats
helptext.Add(" -st, --stats Get statistics on all input DATs"); if (subset == null || subset == "st" || subset == "stats")
helptext.Add(" -bc, --baddump-col Add baddump stats to output"); {
helptext.Add(" -csv, --csv Output in Comma-Separated Value format"); helptext.Add(" -st, --stats Get statistics on all input DATs");
helptext.Add(" -f=, --filename= Set the filename for the output"); helptext.Add(" -bc, --baddump-col Add baddump stats to output");
helptext.Add(" -out= Output directory"); helptext.Add(" -csv, --csv Output in Comma-Separated Value format");
helptext.Add(" -html, --html Output in HTML format"); helptext.Add(" -f=, --filename= Set the filename for the output");
helptext.Add(" -nc, --nodump-col Add nodump stats to output"); helptext.Add(" -out= Output directory");
helptext.Add(" -si, --single Show individual statistics"); helptext.Add(" -html, --html Output in HTML format");
helptext.Add(" -tsv, --tsv Output in Tab-Separated Value format"); helptext.Add(" -nc, --nodump-col Add nodump stats to output");
helptext.Add(" -si, --single Show individual statistics");
helptext.Add(" -tsv, --tsv Output in Tab-Separated Value format");
}
// Type Split // Type Split
helptext.Add(" -ts, --type-split Split a DAT or folder by file types (rom/disk)"); if (subset == null || subset == "ts" || subset == "type-split")
helptext.Add(" -out= Output directory"); {
helptext.Add(" -ts, --type-split Split a DAT or folder by file types (rom/disk)");
helptext.Add(" -out= Output directory");
}
// Update // Update
helptext.Add(" -ud, --update Update a DAT file"); if (subset == null || subset == "ud" || subset == "update")
helptext.Add(" -oa, --output-all Output in all formats"); {
helptext.Add(" -oam, --output-am Output in AttractMode format"); helptext.Add(" -ud, --update Update a DAT file");
helptext.Add(" -oc, --output-cmp Output in CMP format"); helptext.Add(" -oa, --output-all Output in all formats");
helptext.Add(" -ocsv, --output-csv Output in CSV format"); helptext.Add(" -oam, --output-am Output in AttractMode format");
helptext.Add(" -pre=, --prefix= Set prefix for all lines"); helptext.Add(" -oc, --output-cmp Output in CMP format");
helptext.Add(" -post=, --postfix= Set postfix for all lines"); helptext.Add(" -ocsv, --output-csv Output in CSV format");
helptext.Add(" -q, --quotes Put double-quotes around each item"); helptext.Add(" -pre=, --prefix= Set prefix for all lines");
helptext.Add(" -od, --output-dc Output in DOSCenter format"); helptext.Add(" -post=, --postfix= Set postfix for all lines");
helptext.Add(" -om, --output-miss Output in Missfile format"); helptext.Add(" -q, --quotes Put double-quotes around each item");
helptext.Add(" -r, --roms Output roms to miss instead of sets"); helptext.Add(" -od, --output-dc Output in DOSCenter format");
helptext.Add(" -gp, --game-prefix Add game name as a prefix"); helptext.Add(" -om, --output-miss Output in Missfile format");
helptext.Add(" -pre=, --prefix= Set prefix for all lines"); helptext.Add(" -r, --roms Output roms to miss instead of sets");
helptext.Add(" -post=, --postfix= Set postfix for all lines"); helptext.Add(" -gp, --game-prefix Add game name as a prefix");
helptext.Add(" -q, --quotes Put double-quotes around each item"); helptext.Add(" -pre=, --prefix= Set prefix for all lines");
helptext.Add(" -ae=, --add-ext= Add an extension to each item"); helptext.Add(" -post=, --postfix= Set postfix for all lines");
helptext.Add(" -rep=, --rep-ext= Replace all extensions with specified"); helptext.Add(" -q, --quotes Put double-quotes around each item");
helptext.Add(" -rme, --rem-ext Remove all extensions from each item"); helptext.Add(" -ae=, --add-ext= Add an extension to each item");
helptext.Add(" -ro, --romba Output in Romba format (requires SHA-1)"); helptext.Add(" -rep=, --rep-ext= Replace all extensions with specified");
helptext.Add(" -tsv, --tsv Output in Tab-Separated Value format"); helptext.Add(" -rme, --rem-ext Remove all extensions from each item");
helptext.Add(" -csv, --csv Output in Comma-Separated Value format"); helptext.Add(" -ro, --romba Output in Romba format (requires SHA-1)");
helptext.Add(" -omd5, --output-md5 Output in MD5 format"); helptext.Add(" -tsv, --tsv Output in Tab-Separated Value format");
helptext.Add(" -gp, --game-prefix Add game name as a prefix"); helptext.Add(" -csv, --csv Output in Comma-Separated Value format");
helptext.Add(" -ool, --output-ol Output in OfflineList format"); helptext.Add(" -omd5, --output-md5 Output in MD5 format");
helptext.Add(" -or, --output-rc Output in RomCenter format"); helptext.Add(" -gp, --game-prefix Add game name as a prefix");
helptext.Add(" -os, --output-sd Output in SabreDAT format"); helptext.Add(" -ool, --output-ol Output in OfflineList format");
helptext.Add(" -osfv, --ouput-sfv Output in SFV format"); helptext.Add(" -or, --output-rc Output in RomCenter format");
helptext.Add(" -gp, --game-prefix Add game name as a prefix"); helptext.Add(" -os, --output-sd Output in SabreDAT format");
helptext.Add(" -osha1, --output-sha1 Output in SHA-1 format"); helptext.Add(" -osfv, --ouput-sfv Output in SFV format");
helptext.Add(" -gp, --game-prefix Add game name as a prefix"); helptext.Add(" -gp, --game-prefix Add game name as a prefix");
helptext.Add(" -osl, --output-sl Output in Softwarelist format"); helptext.Add(" -osha1, --output-sha1 Output in SHA-1 format");
helptext.Add(" -otsv, --output-tsv Output in TSV format"); helptext.Add(" -gp, --game-prefix Add game name as a prefix");
helptext.Add(" -pre=, --prefix= Set prefix for all lines"); helptext.Add(" -osl, --output-sl Output in Softwarelist format");
helptext.Add(" -post=, --postfix= Set postfix for all lines"); helptext.Add(" -otsv, --output-tsv Output in TSV format");
helptext.Add(" -q, --quotes Put double-quotes around each item"); helptext.Add(" -pre=, --prefix= Set prefix for all lines");
helptext.Add(" -ox, --output-xml Output in Logiqx XML format"); helptext.Add(" -post=, --postfix= Set postfix for all lines");
helptext.Add(" -f=, --filename= Set a new filename"); helptext.Add(" -q, --quotes Put double-quotes around each item");
helptext.Add(" -n=, --name= Set a new internal name"); helptext.Add(" -ox, --output-xml Output in Logiqx XML format");
helptext.Add(" -de=, --desc= Set a new description"); helptext.Add(" -f=, --filename= Set a new filename");
helptext.Add(" -r=, --root= Set a new rootdir"); helptext.Add(" -n=, --name= Set a new internal name");
helptext.Add(" -ca=, --category= Set a new category"); helptext.Add(" -de=, --desc= Set a new description");
helptext.Add(" -v=, --version= Set a new version"); helptext.Add(" -r=, --root= Set a new rootdir");
helptext.Add(" -da=, --date= Set a new date"); helptext.Add(" -ca=, --category= Set a new category");
helptext.Add(" -au=, --author= Set a new author"); helptext.Add(" -v=, --version= Set a new version");
helptext.Add(" -em=, --email= Set a new email"); helptext.Add(" -da=, --date= Set a new date");
helptext.Add(" -hp=, --homepage= Set a new homepage"); helptext.Add(" -au=, --author= Set a new author");
helptext.Add(" -u=, --url= Set a new URL"); helptext.Add(" -em=, --email= Set a new email");
helptext.Add(" -co=, --comment= Set a new comment"); helptext.Add(" -hp=, --homepage= Set a new homepage");
helptext.Add(" -h=, --header= Set a new header skipper"); helptext.Add(" -u=, --url= Set a new URL");
helptext.Add(" -sd=, --superdat Set SuperDAT type"); helptext.Add(" -co=, --comment= Set a new comment");
helptext.Add(" -fm=, --forcemerge= Set force merging"); helptext.Add(" -h=, --header= Set a new header skipper");
helptext.Add(" Supported values are:"); helptext.Add(" -sd=, --superdat Set SuperDAT type");
helptext.Add(" None, Split, Full"); helptext.Add(" -fm=, --forcemerge= Set force merging");
helptext.Add(" -fn=, --forcend= Set force nodump"); helptext.Add(" Supported values are:");
helptext.Add(" Supported values are:"); helptext.Add(" None, Split, Full");
helptext.Add(" None, Obsolete, Required, Ignore"); helptext.Add(" -fn=, --forcend= Set force nodump");
helptext.Add(" -fp=, --forcepack= Set force packing"); helptext.Add(" Supported values are:");
helptext.Add(" Supported values are:"); helptext.Add(" None, Obsolete, Required, Ignore");
helptext.Add(" None, Zip, Unzip"); helptext.Add(" -fp=, --forcepack= Set force packing");
helptext.Add(" -xof, --exclude-of Exclude romof, cloneof, sampleof tags"); helptext.Add(" Supported values are:");
helptext.Add(" -clean Clean game names according to WoD standards"); helptext.Add(" None, Zip, Unzip");
helptext.Add(" -sl, --softlist Use Software List name instead of description"); helptext.Add(" -xof, --exclude-of Exclude romof, cloneof, sampleof tags");
helptext.Add(" -dm, --dat-merged Create merged sets"); helptext.Add(" -clean Clean game names according to WoD standards");
helptext.Add(" -ds, --dat-split Create split sets"); helptext.Add(" -sl, --softlist Use Software List name instead of description");
helptext.Add(" -dnm, --dat-nonmerged Create non-merged sets"); helptext.Add(" -dm, --dat-merged Create merged sets");
helptext.Add(" -df, --dat-fullnonmerged Create fully non-merged sets"); helptext.Add(" -ds, --dat-split Create split sets");
helptext.Add(" -trim Trim file names to fit NTFS length"); helptext.Add(" -dnm, --dat-nonmerged Create non-merged sets");
helptext.Add(" -rd=, --root-dir= Set the root directory for calc"); helptext.Add(" -df, --dat-fullnonmerged Create fully non-merged sets");
helptext.Add(" -si, --single All game names replaced by '!'"); helptext.Add(" -trim Trim file names to fit NTFS length");
helptext.Add(" -dd, --dedup Enable deduping in the created DAT"); helptext.Add(" -rd=, --root-dir= Set the root directory for calc");
helptext.Add(" -m, --merge Merge the input DATs"); helptext.Add(" -si, --single All game names replaced by '!'");
helptext.Add(" -b, --bare Don't include date in automatic name"); helptext.Add(" -dd, --dedup Enable deduping in the created DAT");
helptext.Add(" -di, --diff Create diffdats from inputs (all outputs)"); helptext.Add(" -m, --merge Merge the input DATs");
helptext.Add(" -b, --bare Don't include date in automatic name"); helptext.Add(" -b, --bare Don't include date in automatic name");
helptext.Add(" -c, --cascade Enable cascaded diffing"); helptext.Add(" -di, --diff Create diffdats from inputs (all outputs)");
helptext.Add(" -ip, --inplace Enable inplace, cascaded diff"); helptext.Add(" -b, --bare Don't include date in automatic name");
helptext.Add(" -sf, --skip Skip output of first DAT"); helptext.Add(" -c, --cascade Enable cascaded diffing");
helptext.Add(" -rc, --rev-cascade Enable reverse cascaded diffing"); helptext.Add(" -ip, --inplace Enable inplace, cascaded diff");
helptext.Add(" -ip, --inplace Enable inplace, cascaded diff"); helptext.Add(" -sf, --skip Skip output of first DAT");
helptext.Add(" -sf, --skip Skip output of first DAT"); helptext.Add(" -rc, --rev-cascade Enable reverse cascaded diffing");
helptext.Add(" -did, --diff-du Create diffdat containing just duplicates"); helptext.Add(" -ip, --inplace Enable inplace, cascaded diff");
helptext.Add(" [Can be used with other -diX flags]"); helptext.Add(" -sf, --skip Skip output of first DAT");
helptext.Add(" -b, --bare Don't include date in automatic name"); helptext.Add(" -did, --diff-du Create diffdat containing just duplicates");
helptext.Add(" -dii, --diff-in Create diffdats for individual DATs"); helptext.Add(" [Can be used with other -diX flags]");
helptext.Add(" [Can be used with other -diX flags]"); helptext.Add(" -b, --bare Don't include date in automatic name");
helptext.Add(" -b, --bare Don't include date in automatic name"); helptext.Add(" -dii, --diff-in Create diffdats for individual DATs");
helptext.Add(" -din, --diff-nd Create diffdat containing no duplicates"); helptext.Add(" [Can be used with other -diX flags]");
helptext.Add(" [Can be used with other -diX flags]"); helptext.Add(" -b, --bare Don't include date in automatic name");
helptext.Add(" -b, --bare Don't include date in automatic name"); helptext.Add(" -din, --diff-nd Create diffdat containing no duplicates");
helptext.Add(" -gn=, --game-name= Filter by game name"); helptext.Add(" [Can be used with other -diX flags]");
helptext.Add(" -ngn=, --not-game= Filter by not game name"); helptext.Add(" -b, --bare Don't include date in automatic name");
helptext.Add(" -rn=, --rom-name= Filter by rom name"); helptext.Add(" -gn=, --game-name= Filter by game name");
helptext.Add(" -nrn=, --not-rom= Filter by not rom name"); helptext.Add(" -ngn=, --not-game= Filter by not game name");
helptext.Add(" -rt=, --rom-type= Filter by rom type"); helptext.Add(" -rn=, --rom-name= Filter by rom name");
helptext.Add(" -nrt=, --not-type= Filter by not rom type"); helptext.Add(" -nrn=, --not-rom= Filter by not rom name");
helptext.Add(" -sgt=, --greater= Filter by size >="); helptext.Add(" -rt=, --rom-type= Filter by rom type");
helptext.Add(" -slt=, --less= Filter by size <="); helptext.Add(" -nrt=, --not-type= Filter by not rom type");
helptext.Add(" -seq=, --equal= Filter by size =="); helptext.Add(" -sgt=, --greater= Filter by size >=");
helptext.Add(" -crc=, --crc= Filter by CRC hash"); helptext.Add(" -slt=, --less= Filter by size <=");
helptext.Add(" -ncrc=, --not-crc= Filter by not CRC hash"); helptext.Add(" -seq=, --equal= Filter by size ==");
helptext.Add(" -md5=, --md5= Filter by MD5 hash"); helptext.Add(" -crc=, --crc= Filter by CRC hash");
helptext.Add(" -nmd5=, --not-md5= Filter by not MD5 hash"); helptext.Add(" -ncrc=, --not-crc= Filter by not CRC hash");
helptext.Add(" -sha1=, --sha1= Filter by SHA-1 hash"); helptext.Add(" -md5=, --md5= Filter by MD5 hash");
helptext.Add(" -nsha1=, --not-sha1= Filter by not SHA-1 hash"); helptext.Add(" -nmd5=, --not-md5= Filter by not MD5 hash");
helptext.Add(" -is=, --status= Include only items with a given status"); helptext.Add(" -sha1=, --sha1= Filter by SHA-1 hash");
helptext.Add(" Supported values are:"); helptext.Add(" -nsha1=, --not-sha1= Filter by not SHA-1 hash");
helptext.Add(" None, Good, BadDump, Nodump, Verified"); helptext.Add(" -is=, --status= Include only items with a given status");
helptext.Add(" -nis=, --not-status= Exclude items with a given status"); helptext.Add(" Supported values are:");
helptext.Add(" Supported values are:"); helptext.Add(" None, Good, BadDump, Nodump, Verified");
helptext.Add(" None, Good, BadDump, Nodump, Verified"); helptext.Add(" -nis=, --not-status= Exclude items with a given status");
helptext.Add(" -gt=, --game-type= Include only games with a given type"); helptext.Add(" Supported values are:");
helptext.Add(" Supported values are:"); helptext.Add(" None, Good, BadDump, Nodump, Verified");
helptext.Add(" None, Bios, Device, Mechanical"); helptext.Add(" -gt=, --game-type= Include only games with a given type");
helptext.Add(" -ngt=, --not-gtype= Exclude only games with a given type"); helptext.Add(" Supported values are:");
helptext.Add(" Supported values are:"); helptext.Add(" None, Bios, Device, Mechanical");
helptext.Add(" None, Bios, Device, Mechanical"); helptext.Add(" -ngt=, --not-gtype= Exclude only games with a given type");
helptext.Add(" -run, --runnable Include only items that are marked runnable"); helptext.Add(" Supported values are:");
helptext.Add(" -nrun, --not-run Include only items that are marked unrunnable"); helptext.Add(" None, Bios, Device, Mechanical");
helptext.Add(" -out= Output directory (overridden by --inplace)"); helptext.Add(" -run, --runnable Include only items that are marked runnable");
helptext.Add(" -mt={4} Amount of threads to use (-1 unlimted)"); helptext.Add(" -nrun, --not-run Include only items that are marked unrunnable");
helptext.Add(" -out= Output directory (overridden by --inplace)");
helptext.Add(" -mt={4} Amount of threads to use (-1 unlimted)");
}
// Verify // Verify
helptext.Add(" -ve, --verify Verify a folder against DATs"); if (subset == null || subset == "ve" || subset == "verify")
helptext.Add(" -dat= Input DAT to verify against"); {
helptext.Add(" -t=, --temp= Set the temporary directory to use"); helptext.Add(" -ve, --verify Verify a folder against DATs");
helptext.Add(" -ho, --hash-only Check files by hash only"); helptext.Add(" -dat= Input DAT to verify against");
helptext.Add(" -qs, --quick Enable quick scanning of archives"); helptext.Add(" -t=, --temp= Set the temporary directory to use");
helptext.Add(" -h=, --header= Set a header skipper to use, blank means all"); helptext.Add(" -ho, --hash-only Check files by hash only");
helptext.Add(" -qs, --quick Enable quick scanning of archives");
helptext.Add(" -h=, --header= Set a header skipper to use, blank means all");
}
// Additional Notes // Additional notes
helptext.Add(""); if (subset == null || subset == "ss" || subset == "sort")
helptext.Add("Archive scanning levels:"); {
helptext.Add(" 0 Hash archive and contents"); helptext.Add("");
helptext.Add(" 1 Only hash contents"); helptext.Add("Archive scanning levels:");
helptext.Add(" 2 Only hash archive"); helptext.Add(" 0 Hash archive and contents");
helptext.Add(" 1 Only hash contents");
helptext.Add(" 2 Only hash archive");
}
helptext.Add(""); if (subset == null || subset == "ud" || subset == "update")
helptext.Add("Filter parameters game name, rom name, CRC, MD5, SHA-1 can"); {
helptext.Add("do partial matches using asterisks as follows (case insensitive):"); helptext.Add("");
helptext.Add(" *00 means ends with '00'"); helptext.Add("Filter parameters game name, rom name, CRC, MD5, SHA-1 can");
helptext.Add(" 00* means starts with '00'"); helptext.Add("do partial matches using asterisks as follows (case insensitive):");
helptext.Add(" *00* means contains '00'"); helptext.Add(" *00 means ends with '00'");
helptext.Add(" 00 means exactly equals '00'"); helptext.Add(" 00* means starts with '00'");
helptext.Add(" *00* means contains '00'");
helptext.Add(" 00 means exactly equals '00'");
helptext.Add(""); helptext.Add("");
helptext.Add("Filter parameters for size can use postfixes for inputs:"); helptext.Add("Filter parameters for size can use postfixes for inputs:");
helptext.Add(" e.g. 8kb => 8000 or 8kib => 8192"); helptext.Add(" e.g. 8kb => 8000 or 8kib => 8192");
}
helptext.Add(""); helptext.Add("");
helptext.Add("Most of the filter parameters allow for multiple inputs:"); helptext.Add("Most of the filter parameters allow for multiple inputs:");