[SabreTools, Filter] Update list and string flags

This commit is contained in:
Matt Nadareski
2018-01-08 12:19:20 -08:00
parent 326a09a52d
commit 2e67c74c54
4 changed files with 400 additions and 363 deletions

View File

@@ -71,17 +71,17 @@ namespace SabreTools.Library.DatFiles
#region Positive #region Positive
public List<string> GameNames public List<string> MachineNames
{ {
get { return _gameNames; } get { return _gameNames; }
set { _gameNames = value; } set { _gameNames = value; }
} }
public List<string> RomNames public List<string> ItemNames
{ {
get { return _romNames; } get { return _romNames; }
set { _romNames = value; } set { _romNames = value; }
} }
public List<string> RomTypes public List<string> ItemTypes
{ {
get { return _romTypes; } get { return _romTypes; }
set { _romTypes = value; } set { _romTypes = value; }
@@ -131,17 +131,17 @@ namespace SabreTools.Library.DatFiles
#region Negative #region Negative
public List<string> NotGameNames public List<string> NotMachineNames
{ {
get { return _notGameNames; } get { return _notGameNames; }
set { _notGameNames = value; } set { _notGameNames = value; }
} }
public List<string> NotRomNames public List<string> NotItemNames
{ {
get { return _notRomNames; } get { return _notRomNames; }
set { _notRomNames = value; } set { _notRomNames = value; }
} }
public List<string> NotRomTypes public List<string> NotItemTypes
{ {
get { return _notRomTypes; } get { return _notRomTypes; }
set { _notRomTypes = value; } set { _notRomTypes = value; }

View File

@@ -196,7 +196,7 @@ Options:
Normally, the DAT will be created with the date in the file name. Normally, the DAT will be created with the date in the file name.
This flag removes that but keeps the date tag intact. This flag removes that but keeps the date tag intact.
-fp=, --forcepack= Set force packing -fp=, --forcepacking= Set force packing
Set the forcepacking flag to one of the supported values: Set the forcepacking flag to one of the supported values:
None, Zip, Unzip None, Zip, Unzip
@@ -282,11 +282,11 @@ Options:
Set the internal name for the output DAT(s) [default is folder name Set the internal name for the output DAT(s) [default is folder name
plus date] plus date]
-de=, --desc= Set the description of the DAT -de=, --description= Set the description of the DAT
Set the description for the output DAT(s) [default is the folder Set the description for the output DAT(s) [default is the folder
name] name]
-c=, --cat= Set the category of the DAT -c=, --category= Set the category of the DAT
Set the category for the output DAT(s) [default is blank] Set the category for the output DAT(s) [default is blank]
-v=, --version= Set the version of the DAT -v=, --version= Set the version of the DAT
@@ -355,11 +355,11 @@ Options:
temp directory (inside the running folder) is not preferred. This is temp directory (inside the running folder) is not preferred. This is
used for any operations that require an archive to be extracted. used for any operations that require an archive to be extracted.
-out= Set the name of the output directory -out=, --output-dir= Set the name of the output directory
This sets an output folder to be used when the files are created. If This sets an output folder to be used when the files are created. If
a path is not defined, the application directory is used instead. a path is not defined, the application directory is used instead.
-mt={4} Amount of threads to use -mt=, --threads= Amount of threads to use
Optionally, set the number of threads to use for the multithreaded Optionally, set the number of threads to use for the multithreaded
operations. The default is 4 threads; -1 means unlimited threads operations. The default is 4 threads; -1 means unlimited threads
created. If the user specifies that only 1 thread is to be used, it created. If the user specifies that only 1 thread is to be used, it
@@ -382,7 +382,7 @@ Options:
- Nintendo Super Famicom / Super Nintendo Entertainment System - Nintendo Super Famicom / Super Nintendo Entertainment System
- Nintendo Super Famicom / Super Nintendo Entertainment System SPC - Nintendo Super Famicom / Super Nintendo Entertainment System SPC
-out= Set the name of the output directory -out=, --output-dir= Set the name of the output directory
This sets an output folder to be used when the files are created. If This sets an output folder to be used when the files are created. If
a path is not defined, the application directory is used instead. a path is not defined, the application directory is used instead.
@@ -407,7 +407,7 @@ Options:
- Nintendo Super Famicom / Super Nintendo Entertainment System - Nintendo Super Famicom / Super Nintendo Entertainment System
- Nintendo Super Famicom / Super Nintendo Entertainment System SPC - Nintendo Super Famicom / Super Nintendo Entertainment System SPC
-out= Set the name of the output directory -out=, --output-dir= Set the name of the output directory
This sets an output folder to be used when the files are created. If This sets an output folder to be used when the files are created. If
a path is not defined, the application directory is used instead. a path is not defined, the application directory is used instead.
@@ -474,7 +474,7 @@ Options:
-ox, -output-xml Output in Logiqx XML format -ox, -output-xml Output in Logiqx XML format
Add outputting the created DAT to Logiqx XML format Add outputting the created DAT to Logiqx XML format
-out= Set the name of the output directory -out=, --output-dir= Set the name of the output directory
This sets an output folder to be used when the files are created. If This sets an output folder to be used when the files are created. If
a path is not defined, the application directory is used instead. a path is not defined, the application directory is used instead.
@@ -545,7 +545,7 @@ Options:
The user-supplied DAT used to check which files need to be rebuilt. The user-supplied DAT used to check which files need to be rebuilt.
Multiple occurrences of this flag are allowed. Multiple occurrences of this flag are allowed.
-out= Set the name of the output directory -out=, --output-dir= Set the name of the output directory
This sets an output folder to be used when the files are created. If This sets an output folder to be used when the files are created. If
a path is not defined, the application directory is used instead. a path is not defined, the application directory is used instead.
@@ -710,7 +710,7 @@ Options:
parent sets based on the cloneof and romof tags as well as device parent sets based on the cloneof and romof tags as well as device
references. This is incompatible with the other --dat-X flags. references. This is incompatible with the other --dat-X flags.
-mt={4} Amount of threads to use -mt=, --threads= Amount of threads to use
Optionally, set the number of threads to use for the multithreaded Optionally, set the number of threads to use for the multithreaded
operations. The default is 4 threads; -1 means unlimited threads operations. The default is 4 threads; -1 means unlimited threads
created. If the user specifies that only 1 thread is to be used, it created. If the user specifies that only 1 thread is to be used, it
@@ -746,7 +746,7 @@ Options:
-f=, --filename= Set the filename for the output -f=, --filename= Set the filename for the output
Set the filename (without extension) for the outputted report Set the filename (without extension) for the outputted report
-out= Set the name of the output directory -out=, --output-dir= Set the name of the output directory
This sets an output folder to be used when the files are created. If This sets an output folder to be used when the files are created. If
a path is not defined, the application directory is used instead. a path is not defined, the application directory is used instead.
@@ -846,10 +846,10 @@ Options:
-q, --quotes Put double-quotes around each item -q, --quotes Put double-quotes around each item
This quotes only the item and not the prefix and postfix This quotes only the item and not the prefix and postfix
-ae=, --add-ext= Add an extension to each item -ae=, --add-extension= Add an extension to each item
To each item, a postfixed extension is added To each item, a postfixed extension is added
-re=, --rep-ext= Replace all extensions with specified -re=, --replace-extension= Replace all extensions with specified
When an extension exists, replace it with the provided instead When an extension exists, replace it with the provided instead
-rme, --remove-extensions Remove all extensions from all items -rme, --remove-extensions Remove all extensions from all items
@@ -946,13 +946,13 @@ Options:
-n=, --name= Set the internal name of the DAT -n=, --name= Set the internal name of the DAT
Set the internal name for the output DAT(s) Set the internal name for the output DAT(s)
-de=, --desc= Set the description of the DAT -de=, --description= Set the description of the DAT
Set the description for the output DAT(s) Set the description for the output DAT(s)
-r=, --root= Set a new rootdir -r=, --root= Set a new rootdir
Set the rootdir (as used by SuperDAT mode) for the output DAT(s) Set the rootdir (as used by SuperDAT mode) for the output DAT(s)
-c=, --cat= Set the category of the DAT -c=, --category= Set the category of the DAT
Set the category for the output DAT(s) Set the category for the output DAT(s)
-v=, --version= Set the version of the DAT -v=, --version= Set the version of the DAT
@@ -982,15 +982,15 @@ Options:
-sd, --superdat Enable SuperDAT creation -sd, --superdat Enable SuperDAT creation
Set the type flag to "SuperDAT" for the output DAT Set the type flag to "SuperDAT" for the output DAT
-fm=, --forcemerge= Set force merging -fm=, --forcemerging= Set force merging
Set the forcemerge tag to one of the supported values: Set the forcemerging tag to one of the supported values:
None, Split, Full None, Split, Merged, Nonmerged, Full
-fn=, --forcend= Set force nodump -fn=, --forcenodump= Set force nodump
Set the forcenodump tag to one of the supported values: Set the forcenodump tag to one of the supported values:
None, Obsolete, Required, Ignore None, Obsolete, Required, Ignore
-fp=, --forcepack= Set force packing -fp=, --forcepacking= Set force packing
Set the forcepacking flag to one of the supported values: Set the forcepacking flag to one of the supported values:
None, Zip, Unzip None, Zip, Unzip
@@ -1179,10 +1179,10 @@ Options:
This flag enables updating of machine manufacturers from base This flag enables updating of machine manufacturers from base
DATs DATs
-gn=, --not-game= Filter by game name -gn=, --game-name= Filter by game name
-ngn=, --game-name= Exclude by game name -ngn=, --not-game-name= Exclude by game name
-rn=, --rom-name= Filter by rom name -rn=, --item-name= Filter by item name
-nrn=, --not-rom= Exclude by rom name -nrn=, --not-item-name= Exclude by item name
-crc=, --crc= Filter by CRC hash -crc=, --crc= Filter by CRC hash
-ncrc=, --not-crc= Exclude by CRC hash -ncrc=, --not-crc= Exclude by CRC hash
-md5=, --md5= Filter by MD5 hash -md5=, --md5= Filter by MD5 hash
@@ -1205,11 +1205,11 @@ Options:
well. This can allow for more advanced set-building, especially in well. This can allow for more advanced set-building, especially in
arcade-based sets. arcade-based sets.
-rt=, --rom-type= Filter by rom type -rt=, --item-type= Filter by item type
This allows users to only include roms or disks to their liking. This allows users to only include roms or disks to their liking.
Multiples of this input are allowed. Multiples of this input are allowed.
-nrt=, --not-type= Exclude by rom type -nrt=, --not-item-type= Exclude by item type
This allows users to only exclude roms or disks to their liking. This allows users to only exclude roms or disks to their liking.
Multiples of this input are allowed. Multiples of this input are allowed.
@@ -1235,7 +1235,7 @@ Options:
None, Bios, Device, Mechanical None, Bios, Device, Mechanical
Multiples of this input are allowed. Multiples of this input are allowed.
-ngt=, --not-gtype= Exclude only items with a given game type -ngt=, --not-game-type= Exclude only items with a given game type
Exclude items with one of the supported values: Exclude items with one of the supported values:
None, Bios, Device, Mechanical None, Bios, Device, Mechanical
Multiples of this input are allowed. Multiples of this input are allowed.
@@ -1246,7 +1246,7 @@ Options:
-nrun, --not-runnable Include only items that are not marked runnable -nrun, --not-runnable Include only items that are not marked runnable
This allows users to include only unrunnable games This allows users to include only unrunnable games
-out= Set the name of the output directory -out=, --output-dir= Set the name of the output directory
This sets an output folder to be used when the files are created. If This sets an output folder to be used when the files are created. If
a path is not defined, the application directory is used instead. a path is not defined, the application directory is used instead.
@@ -1257,7 +1257,7 @@ Options:
to how file are expected to be written. This flag is only valid for to how file are expected to be written. This flag is only valid for
Update and Cascade operations. Update and Cascade operations.
-mt={4} Amount of threads to use -mt=, --threads= Amount of threads to use
Optionally, set the number of threads to use for the multithreaded Optionally, set the number of threads to use for the multithreaded
operations. The default is 4 threads; -1 means unlimited threads operations. The default is 4 threads; -1 means unlimited threads
created. If the user specifies that only 1 thread is to be used, it created. If the user specifies that only 1 thread is to be used, it
@@ -1339,7 +1339,8 @@ users of SabreTools. Thanks to Kludge for most of these suggestions!
Convert a DAT file to XML and put it in a new folder Convert a DAT file to XML and put it in a new folder
Long form: Long form:
SabreTools.exe --update --output-xml --out=OutDir Path\To\DatFile.dat SabreTools.exe --update --output-xml --output-dir==OutDir
Path\To\DatFile.dat
Short form: Short form:
SabreTools.exe -ud -ox -out=OutDir DatFile.dat Path\To\DatFile.dat SabreTools.exe -ud -ox -out=OutDir DatFile.dat Path\To\DatFile.dat
@@ -1368,7 +1369,8 @@ users of SabreTools. Thanks to Kludge for most of these suggestions!
and outputting in TorrentZip format and outputting in TorrentZip format
Long form: Long form:
SabreTools.exe --sort --dat=Fix.dat --tzip --out=FixDir InDir1 InDir2 SabreTools.exe --sort --dat=Fix.dat --tzip --output-dir==FixDir InDir1
InDir2
Short form: Short form:
SabreTools.exe -ss -dat=Fix.dat -tzip -out=FixDir InDir2 InDir2 SabreTools.exe -ss -dat=Fix.dat -tzip -out=FixDir InDir2 InDir2
@@ -1414,41 +1416,56 @@ more details.
This section contains remappings from old flag names to new ones for the purposes of testing This section contains remappings from old flag names to new ones for the purposes of testing
-ab, --add-blank -> -ab, --add-blank-files -ab, --add-blank -> -ab, --add-blank-files
-bc, --baddump-col -> -bc, --baddump-column -ae, --add-ext -> -ae, --add-extension
-b, --bare -> -b, --no-automatic-date -b, --bare -> -b, --no-automatic-date
-dnd, --dat-devnonmerged -> -dnd, --dat-device-non-merged -bc, --baddump-col -> -bc, --baddump-column
-df, --dat-fullnonmerged -> -df, --dat-full-non-merged -c, --cat -> -c, --category
-dnm, --dat-nonmerged -> -dnm, --dat-non-merged
-dan, --desc-name -> -dan, --description-as-name -dan, --desc-name -> -dan, --description-as-name
-de, --desc -> -de, --description
-df, --dat-fullnonmerged -> -df, --dat-full-non-merged
-dnd, --dat-devnonmerged -> -dnd, --dat-device-non-merged
-dnm, --dat-nonmerged -> -dnm, --dat-non-merged
-es, --ext -> -es, --extension -es, --ext -> -es, --extension
-f, --files -> -f, --archives-as-files -f, --files -> -f, --archives-as-files
-fm, --forcemerge -> -fm, --forcemerging
-fn, --forcend -> -fn, --forcenodump
-fp, --forcepack -> -fp, --forcepacking
-ic, --ignore-chd -> -ic, --chds-as-files -ic, --ignore-chd -> -ic, --chds-as-files
-mt, --mt -> -mt, --threads
-nc, --nodump-col -> -nc, --nodump-column -nc, --nodump-col -> -nc, --nodump-column
-ngn, --not-game -> -ngn, --not-game-name
-ngt, --not-gtype -> -ngt, --not-game-type
-nrn, --not-rom -> -nrn, --not-rom-name
-nm, --noMD5 -> -nm, --skip-md5 -nm, --noMD5 -> -nm, --skip-md5
-nrt, --not-type -> -nrt, --not-item-type
-nrun, --not-run -> -nrun, --not-runnable
-ns, --noSHA1 -> -ns, --skip-sha1 -ns, --noSHA1 -> -ns, --skip-sha1
-ns256, --noSHA256 -> -ns256, --skip-sha256 -ns256, --noSHA256 -> -ns256, --skip-sha256
-ns384, --noSHA384 -> -nm, --skip-sha384 -ns384, --noSHA384 -> -nm, --skip-sha384
-ns512, --noSHA512 -> -nm, --skip-sha512 -ns512, --noSHA512 -> -nm, --skip-sha512
-nrun, --not-run -> -nrun, --not-runnable
-ofg, --of-as-game -> -ofg, --match-of-tags
-oam, --output-am -> -oam, --output-attractmode -oam, --output-am -> -oam, --output-attractmode
-od, --output-dc -> -od, --output-doscenter -od, --output-dc -> -od, --output-doscenter
-ofg, --of-as-game -> -ofg, --match-of-tags
-olr, --output-lr -> -olr, --output-listrom -olr, --output-lr -> -olr, --output-listrom
-ool, --output-ol -> -ol, --output-offlinelist -ool, --output-ol -> -ol, --output-offlinelist
-or, --output-rc -> -or, --output-romcenter -or, --output-rc -> -or, --output-romcenter
-os, --output-sd -> -os, --output-sabredat -os, --output-sd -> -os, --output-sabredat
-osl, --output-sl -> -osl, --output-softwarelist -osl, --output-sl -> -osl, --output-softwarelist
-rme, --rem-ext -> -rme, --remove-extensions -out, --out -> -out, --output-dir
-rc, --rev-cascade -> -rc, --reverse-cascade
-rep, --rep-ext -> -rep, --replace-extension
-rmd5, --rem-md5 -> -rmd5, --remove-md5 -rmd5, --rem-md5 -> -rmd5, --remove-md5
-rme, --rem-ext -> -rme, --remove-extensions
-rn, --rom-name -> -rn, --item-name
-rsha1, --rem-sha1 -> -rsha1, --remove-sha1 -rsha1, --rem-sha1 -> -rsha1, --remove-sha1
-rsha256, --rem-sha256 -> -rsha256, --remove-sha256 -rsha256, --rem-sha256 -> -rsha256, --remove-sha256
-rsha384, --rem-sha384 -> -rsha384, --remove-sha384 -rsha384, --rem-sha384 -> -rsha384, --remove-sha384
-rsha512, --rem-sha512 -> -rsha512, --remove-sha512 -rsha512, --rem-sha512 -> -rsha512, --remove-sha512
-rt, --rom-type -> -rt, --item-type
-ru, --rem-uni -> -ru, --remove-unicode -ru, --rem-uni -> -ru, --remove-unicode
-rc, --rev-cascade -> -rc, --reverse-cascade -sf, --skip -> -sf, --skip-first-output
-si, --single -> -ind, --individual [For stat output case] -si, --single -> -ind, --individual [For stat output case]
-si, --single -> -si, --single-set [For '!' case] -si, --single -> -si, --single-set [For '!' case]
-sf, --skip -> -sf, --skip-first-output
-ska, --skiparc -> -ska, --skip-archives -ska, --skiparc -> -ska, --skip-archives
-skf, --skipfile -> -skf, --skip-files -skf, --skipfile -> -skf, --skip-files
-t7z, --t7z -> -t7z, --torrent-7zip -t7z, --t7z -> -t7z, --torrent-7zip

View File

@@ -1220,7 +1220,7 @@ namespace SabreTools
#region Private Int32 features #region Private Int32 features
private static Feature gzFeature private static Feature gzInt32Input
{ {
get get
{ {
@@ -1231,18 +1231,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature mtFeature private static Feature rarInt32Input
{
get
{
return new Feature(
new List<string>() { "-mt", "--mt" },
"Amount of threads to use (default = # cores, -1 unlimted)",
FeatureType.Int32,
null);
}
}
private static Feature rarFeature
{ {
get get
{ {
@@ -1253,7 +1242,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature sevenZipFeature private static Feature sevenZipInt32Input
{ {
get get
{ {
@@ -1264,7 +1253,18 @@ namespace SabreTools
null); null);
} }
} }
private static Feature zipFeature private static Feature threadsInt32Input
{
get
{
return new Feature(
new List<string>() { "-mt", "--threads" },
"Amount of threads to use (default = # cores, -1 unlimted)",
FeatureType.Int32,
null);
}
}
private static Feature zipInt32Input
{ {
get get
{ {
@@ -1285,7 +1285,7 @@ namespace SabreTools
#region Private List<string> features #region Private List<string> features
private static Feature baseDatFeature private static Feature baseDatListInput
{ {
get get
{ {
@@ -1296,7 +1296,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature crcFeature private static Feature crcListInput
{ {
get get
{ {
@@ -1307,7 +1307,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature datFeature private static Feature datListInput
{ {
get get
{ {
@@ -1318,7 +1318,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature extaFeature private static Feature extaListInput
{ {
get get
{ {
@@ -1329,7 +1329,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature extbFeature private static Feature extbListInput
{ {
get get
{ {
@@ -1340,7 +1340,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature gameNameFeature private static Feature gameNameListInput
{ {
get get
{ {
@@ -1351,7 +1351,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature gameTypeFeature private static Feature gameTypeListInput
{ {
get get
{ {
@@ -1366,7 +1366,29 @@ namespace SabreTools
}); });
} }
} }
private static Feature md5Feature private static Feature itemNameListInput
{
get
{
return new Feature(
new List<string>() { "-rn", "--item-name" },
"Filter by item name",
FeatureType.List,
null);
}
}
private static Feature itemTypeListInput
{
get
{
return new Feature(
new List<string>() { "-rt", "--item-type" },
"Filter by item type",
FeatureType.List,
null);
}
}
private static Feature md5ListInput
{ {
get get
{ {
@@ -1377,7 +1399,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature notCrcFeature private static Feature notCrcListInput
{ {
get get
{ {
@@ -1388,23 +1410,23 @@ namespace SabreTools
null); null);
} }
} }
private static Feature notGameFeature private static Feature notGameNameListInput
{ {
get get
{ {
return new Feature( return new Feature(
new List<string>() { "-ngn", "--not-game" }, new List<string>() { "-ngn", "--not-game-name" },
"Filter by not game name", "Filter by not game name",
FeatureType.List, FeatureType.List,
null); null);
} }
} }
private static Feature notGtypeFeature private static Feature notGameTypeListInput
{ {
get get
{ {
return new Feature( return new Feature(
new List<string>() { "-ngt", "--not-gtype" }, new List<string>() { "-ngt", "--not-game-type" },
"Exclude only games with a given type", "Exclude only games with a given type",
FeatureType.List, FeatureType.List,
new List<string>() new List<string>()
@@ -1414,7 +1436,29 @@ namespace SabreTools
}); });
} }
} }
private static Feature notMd5Feature private static Feature notItemNameListInput
{
get
{
return new Feature(
new List<string>() { "-nrn", "--not-item-name" },
"Filter by not rom name",
FeatureType.List,
null);
}
}
private static Feature notItemTypeListInput
{
get
{
return new Feature(
new List<string>() { "-nrt", "--not-item-type" },
"Filter by not item type",
FeatureType.List,
null);
}
}
private static Feature notMd5ListInput
{ {
get get
{ {
@@ -1425,18 +1469,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature notRomFeature private static Feature notSha1ListInput
{
get
{
return new Feature(
new List<string>() { "-nrn", "--not-rom" },
"Filter by not rom name",
FeatureType.List,
null);
}
}
private static Feature notSha1Feature
{ {
get get
{ {
@@ -1447,7 +1480,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature notSha256Feature private static Feature notSha256ListInput
{ {
get get
{ {
@@ -1458,7 +1491,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature notSha384Feature private static Feature notSha384ListInput
{ {
get get
{ {
@@ -1469,7 +1502,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature notSha512Feature private static Feature notSha512ListInput
{ {
get get
{ {
@@ -1480,7 +1513,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature notStatusFeature private static Feature notStatusListInput
{ {
get get
{ {
@@ -1495,40 +1528,7 @@ namespace SabreTools
}); });
} }
} }
private static Feature notTypeFeature private static Feature sha1ListInput
{
get
{
return new Feature(
new List<string>() { "-nrt", "--not-type" },
"Filter by not rom type",
FeatureType.List,
null);
}
}
private static Feature romNameFeature
{
get
{
return new Feature(
new List<string>() { "-rn", "--rom-name" },
"Filter by rom name",
FeatureType.List,
null);
}
}
private static Feature romTypeFeature
{
get
{
return new Feature(
new List<string>() { "-rt", "--rom-type" },
"Filter by rom type",
FeatureType.List,
null);
}
}
private static Feature sha1Feature
{ {
get get
{ {
@@ -1539,7 +1539,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature sha256Feature private static Feature sha256ListInput
{ {
get get
{ {
@@ -1550,7 +1550,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature sha384Feature private static Feature sha384ListInput
{ {
get get
{ {
@@ -1561,7 +1561,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature sha512Feature private static Feature sha512ListInput
{ {
get get
{ {
@@ -1572,7 +1572,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature statusFeature private static Feature statusListInput
{ {
get get
{ {
@@ -1592,18 +1592,18 @@ namespace SabreTools
#region Private String features #region Private String features
private static Feature addExtFeature private static Feature addExtensionStringInput
{ {
get get
{ {
return new Feature( return new Feature(
new List<string>() { "-ae", "--add-ext" }, new List<string>() { "-ae", "--add-extension" },
"Add an extension to each item", "Add an extension to each item",
FeatureType.String, FeatureType.String,
null); null);
} }
} }
private static Feature authorFeature private static Feature authorStringInput
{ {
get get
{ {
@@ -1614,18 +1614,18 @@ namespace SabreTools
null); null);
} }
} }
private static Feature categoryFeature private static Feature categoryStringInput
{ {
get get
{ {
return new Feature( return new Feature(
new List<string>() { "-c", "--cat", "--category" }, new List<string>() { "-c", "--category" },
"Set the category of the DAT", "Set the category of the DAT",
FeatureType.String, FeatureType.String,
null); null);
} }
} }
private static Feature commentFeature private static Feature commentStringInput
{ {
get get
{ {
@@ -1636,7 +1636,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature dateFeature private static Feature dateStringInput
{ {
get get
{ {
@@ -1647,18 +1647,18 @@ namespace SabreTools
null); null);
} }
} }
private static Feature descriptionFeature private static Feature descriptionStringInput
{ {
get get
{ {
return new Feature( return new Feature(
new List<string>() { "-de", "--desc", "--description" }, new List<string>() { "-de", "--description" },
"Set the description of the DAT", "Set the description of the DAT",
FeatureType.String, FeatureType.String,
null); null);
} }
} }
private static Feature emailFeature private static Feature emailStringInput
{ {
get get
{ {
@@ -1669,7 +1669,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature equalFeature private static Feature equalStringInput
{ {
get get
{ {
@@ -1680,7 +1680,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature filenameFeature private static Feature filenameStringInput
{ {
get get
{ {
@@ -1691,12 +1691,12 @@ namespace SabreTools
null); null);
} }
} }
private static Feature forcemergeFeature private static Feature forcemergingStringInput
{ {
get get
{ {
return new Feature( return new Feature(
new List<string>() { "-fm", "--forcemerge" }, new List<string>() { "-fm", "--forcemerging" },
"Set force merging", "Set force merging",
FeatureType.String, FeatureType.String,
new List<string>() new List<string>()
@@ -1706,12 +1706,12 @@ namespace SabreTools
}); });
} }
} }
private static Feature forcendFeature private static Feature forcenodumpStringInput
{ {
get get
{ {
return new Feature( return new Feature(
new List<string>() { "-fn", "--forcend" }, new List<string>() { "-fn", "--forcenodump" },
"Set force nodump", "Set force nodump",
FeatureType.String, FeatureType.String,
new List<string>() new List<string>()
@@ -1721,12 +1721,12 @@ namespace SabreTools
}); });
} }
} }
private static Feature forcepackFeature private static Feature forcepackingStringInput
{ {
get get
{ {
return new Feature( return new Feature(
new List<string>() { "-fp", "--forcepack" }, new List<string>() { "-fp", "--forcepacking" },
"Set force packing", "Set force packing",
FeatureType.String, FeatureType.String,
new List<string>() new List<string>()
@@ -1736,7 +1736,7 @@ namespace SabreTools
}); });
} }
} }
private static Feature greaterFeature private static Feature greaterStringInput
{ {
get get
{ {
@@ -1747,7 +1747,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature headerFeature private static Feature headerStringInput
{ {
get get
{ {
@@ -1759,7 +1759,7 @@ namespace SabreTools
} }
} }
private static Feature homepageFeature private static Feature homepageStringInput
{ {
get get
{ {
@@ -1770,7 +1770,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature lessFeature private static Feature lessStringInput
{ {
get get
{ {
@@ -1781,7 +1781,7 @@ namespace SabreTools
null); null);
} }
} }
private static Feature nameFeature private static Feature nameStringInput
{ {
get get
{ {
@@ -1792,29 +1792,18 @@ namespace SabreTools
null); null);
} }
} }
private static Feature outFeature private static Feature outputDirStringInput
{ {
get get
{ {
return new Feature( return new Feature(
new List<string>() { "-out", "--out" }, new List<string>() { "-out", "--output-dir" },
"Output directory", "Output directory",
FeatureType.String, FeatureType.String,
null); null);
} }
} }
private static Feature prefixFeature private static Feature postfixStringInput
{
get
{
return new Feature(
new List<string>() { "-pre", "--prefix" },
"Set prefix for all lines",
FeatureType.String,
null);
}
}
private static Feature postfixFeature
{ {
get get
{ {
@@ -1825,17 +1814,39 @@ namespace SabreTools
null); null);
} }
} }
private static Feature repExtFeature private static Feature prefixStringInput
{ {
get get
{ {
return new Feature( return new Feature(
new List<string>() { "-rep", "--rep-ext" }, new List<string>() { "-pre", "--prefix" },
"Set prefix for all lines",
FeatureType.String,
null);
}
}
private static Feature replaceExtensionStringInput
{
get
{
return new Feature(
new List<string>() { "-rep", "--replace-extension" },
"Replace all extensions with specified", "Replace all extensions with specified",
FeatureType.String, FeatureType.String,
null); null);
} }
} }
private static Feature rootStringInput
{
get
{
return new Feature(
new List<string>() { "-r", "--root" },
"Set a new rootdir",
FeatureType.String,
null);
}
}
private static Feature rootDirFeature private static Feature rootDirFeature
{ {
get get
@@ -1847,17 +1858,6 @@ namespace SabreTools
null); null);
} }
} }
private static Feature rootFeature
{
get
{
return new Feature(
new List<string>() { "-r", "--root" },
"Set a new rootdir",
FeatureType.String,
null);
}
}
private static Feature tempFeature private static Feature tempFeature
{ {
get get
@@ -1940,7 +1940,7 @@ namespace SabreTools
datFromDir.AddFeature("skip-sha384", skipSha384Flag); datFromDir.AddFeature("skip-sha384", skipSha384Flag);
datFromDir.AddFeature("skip-sha512", skipSha512Flag); datFromDir.AddFeature("skip-sha512", skipSha512Flag);
datFromDir.AddFeature("no-automatic-date", noAutomaticDateFlag); datFromDir.AddFeature("no-automatic-date", noAutomaticDateFlag);
datFromDir.AddFeature("forcepack", forcepackFeature); datFromDir.AddFeature("forcepacking", forcepackingStringInput);
datFromDir.AddFeature("archives-as-files", archivesAsFilesFlag); datFromDir.AddFeature("archives-as-files", archivesAsFilesFlag);
datFromDir.AddFeature("output-all", outputAllFlag); datFromDir.AddFeature("output-all", outputAllFlag);
datFromDir.AddFeature("output-attractmode", outputAttractmodeFlag); datFromDir.AddFeature("output-attractmode", outputAttractmodeFlag);
@@ -1964,27 +1964,27 @@ namespace SabreTools
datFromDir.AddFeature("romba", rombaFlag); datFromDir.AddFeature("romba", rombaFlag);
datFromDir.AddFeature("skip-archives", skipArchivesFlag); datFromDir.AddFeature("skip-archives", skipArchivesFlag);
datFromDir.AddFeature("skip-files", skipFilesFlag); datFromDir.AddFeature("skip-files", skipFilesFlag);
datFromDir.AddFeature("filename", filenameFeature); datFromDir.AddFeature("filename", filenameStringInput);
datFromDir.AddFeature("name", nameFeature); datFromDir.AddFeature("name", nameStringInput);
datFromDir.AddFeature("desc", descriptionFeature); datFromDir.AddFeature("description", descriptionStringInput);
datFromDir.AddFeature("category", categoryFeature); datFromDir.AddFeature("category", categoryStringInput);
datFromDir.AddFeature("version", versionFeature); datFromDir.AddFeature("version", versionFeature);
datFromDir.AddFeature("author", authorFeature); datFromDir.AddFeature("author", authorStringInput);
datFromDir.AddFeature("email", emailFeature); datFromDir.AddFeature("email", emailStringInput);
datFromDir.AddFeature("homepage", homepageFeature); datFromDir.AddFeature("homepage", homepageStringInput);
datFromDir.AddFeature("url", urlFeature); datFromDir.AddFeature("url", urlFeature);
datFromDir.AddFeature("comment", commentFeature); datFromDir.AddFeature("comment", commentStringInput);
datFromDir.AddFeature("superdat", superdatFlag); datFromDir.AddFeature("superdat", superdatFlag);
datFromDir.AddFeature("exclude-of", excludeOfFlag); datFromDir.AddFeature("exclude-of", excludeOfFlag);
datFromDir.AddFeature("scene-date-strip", sceneDateStripFlag); datFromDir.AddFeature("scene-date-strip", sceneDateStripFlag);
datFromDir.AddFeature("add-blank-files", addBlankFilesFlag); datFromDir.AddFeature("add-blank-files", addBlankFilesFlag);
datFromDir.AddFeature("add-date", addDateFlag); datFromDir.AddFeature("add-date", addDateFlag);
datFromDir.AddFeature("copy-files", copyFilesFlag); datFromDir.AddFeature("copy-files", copyFilesFlag);
datFromDir.AddFeature("header", headerFeature); datFromDir.AddFeature("header", headerStringInput);
datFromDir.AddFeature("chds-as-files", chdsAsFilesFlag); datFromDir.AddFeature("chds-as-files", chdsAsFilesFlag);
datFromDir.AddFeature("temp", tempFeature); datFromDir.AddFeature("temp", tempFeature);
datFromDir.AddFeature("out", outFeature); datFromDir.AddFeature("output-dir", outputDirStringInput);
datFromDir.AddFeature("mt", mtFeature); datFromDir.AddFeature("threads", threadsInt32Input);
#endregion #endregion
@@ -1995,7 +1995,7 @@ namespace SabreTools
"Extract and remove copier headers", "Extract and remove copier headers",
FeatureType.Flag, FeatureType.Flag,
null); null);
extract.AddFeature("out", outFeature); extract.AddFeature("output-dir", outputDirStringInput);
extract.AddFeature("no-store-header", noStoreHeaderFlag); extract.AddFeature("no-store-header", noStoreHeaderFlag);
#endregion #endregion
@@ -2007,7 +2007,7 @@ namespace SabreTools
"Restore header to file based on SHA-1", "Restore header to file based on SHA-1",
FeatureType.Flag, FeatureType.Flag,
null); null);
restore.AddFeature("out", outFeature); restore.AddFeature("output-dir", outputDirStringInput);
#endregion #endregion
@@ -2025,8 +2025,8 @@ namespace SabreTools
" 1 Only hash contents", " 1 Only hash contents",
" 2 Only hash archive", " 2 Only hash archive",
}); });
sort.AddFeature("dat", datFeature); sort.AddFeature("dat", datListInput);
sort.AddFeature("out", outFeature); sort.AddFeature("output-dir", outputDirStringInput);
sort.AddFeature("depot", depotFlag); sort.AddFeature("depot", depotFlag);
sort.AddFeature("delete", deleteFlag); sort.AddFeature("delete", deleteFlag);
sort.AddFeature("inverse", inverseFlag); sort.AddFeature("inverse", inverseFlag);
@@ -2044,11 +2044,11 @@ namespace SabreTools
sort.AddFeature("torrent-zip", torrentZipFlag); sort.AddFeature("torrent-zip", torrentZipFlag);
//sort.AddFeature("torrent-zpaq", tzpaqFeature); //sort.AddFeature("torrent-zpaq", tzpaqFeature);
//sort.AddFeature("torrent-zstd", tzstdFeature); //sort.AddFeature("torrent-zstd", tzstdFeature);
sort.AddFeature("header", headerFeature); sort.AddFeature("header", headerStringInput);
sort.AddFeature("7z", sevenZipFeature); sort.AddFeature("7z", sevenZipInt32Input);
sort.AddFeature("gz", gzFeature); sort.AddFeature("gz", gzInt32Input);
sort.AddFeature("rar", rarFeature); sort.AddFeature("rar", rarInt32Input);
sort.AddFeature("zip", zipFeature); sort.AddFeature("zip", zipInt32Input);
sort.AddFeature("scan-all", scanAllFlag); sort.AddFeature("scan-all", scanAllFlag);
sort.AddFeature("dat-merged", datMergedFlag); sort.AddFeature("dat-merged", datMergedFlag);
sort.AddFeature("dat-split", datSplitFlag); sort.AddFeature("dat-split", datSplitFlag);
@@ -2056,7 +2056,7 @@ namespace SabreTools
sort.AddFeature("dat-device-non-merged", datDeviceNonMergedFlag); sort.AddFeature("dat-device-non-merged", datDeviceNonMergedFlag);
sort.AddFeature("dat-full-non-merged", datFullNonMergedFlag); sort.AddFeature("dat-full-non-merged", datFullNonMergedFlag);
sort.AddFeature("update-dat", updateDatFlag); sort.AddFeature("update-dat", updateDatFlag);
sort.AddFeature("mt", mtFeature); sort.AddFeature("threads", threadsInt32Input);
#endregion #endregion
@@ -2086,11 +2086,11 @@ namespace SabreTools
split.AddFeature("output-softwarelist", outputSoftwarelistFlag); split.AddFeature("output-softwarelist", outputSoftwarelistFlag);
split.AddFeature("output-tsv", outputTsvFlag); split.AddFeature("output-tsv", outputTsvFlag);
split.AddFeature("output-xml", outputXmlFlag); split.AddFeature("output-xml", outputXmlFlag);
split.AddFeature("out", outFeature); split.AddFeature("output-dir", outputDirStringInput);
split.AddFeature("inplace", inplaceFlag); split.AddFeature("inplace", inplaceFlag);
split.AddFeature("extension", extensionFlag); split.AddFeature("extension", extensionFlag);
split["ext"].AddFeature("exta", extaFeature); split["ext"].AddFeature("exta", extaListInput);
split["ext"].AddFeature("extb", extbFeature); split["ext"].AddFeature("extb", extbListInput);
split.AddFeature("hash", hashFlag); split.AddFeature("hash", hashFlag);
split.AddFeature("level", levelFlag); split.AddFeature("level", levelFlag);
split["level"].AddFeature("short", shortFlag); split["level"].AddFeature("short", shortFlag);
@@ -2109,8 +2109,8 @@ namespace SabreTools
stats.AddFeature("all-stats", allStatsFlag); stats.AddFeature("all-stats", allStatsFlag);
stats.AddFeature("baddump-column", baddumpColumnFlag); stats.AddFeature("baddump-column", baddumpColumnFlag);
stats.AddFeature("csv", csvFlag); stats.AddFeature("csv", csvFlag);
stats.AddFeature("filename", filenameFeature); stats.AddFeature("filename", filenameStringInput);
stats.AddFeature("out", outFeature); stats.AddFeature("output-dir", outputDirStringInput);
stats.AddFeature("html", htmlFlag); stats.AddFeature("html", htmlFlag);
stats.AddFeature("nodump-col", nodumpColumnFlag); stats.AddFeature("nodump-col", nodumpColumnFlag);
stats.AddFeature("individual", individualFlag); stats.AddFeature("individual", individualFlag);
@@ -2143,19 +2143,19 @@ namespace SabreTools
update.AddFeature("output-attractmode", outputAttractmodeFlag); update.AddFeature("output-attractmode", outputAttractmodeFlag);
update.AddFeature("output-cmp", outputCmpFlag); update.AddFeature("output-cmp", outputCmpFlag);
update.AddFeature("output-csv", outputCsvFlag); update.AddFeature("output-csv", outputCsvFlag);
update["output-csv"].AddFeature("prefix", prefixFeature); update["output-csv"].AddFeature("prefix", prefixStringInput);
update["output-csv"].AddFeature("postfix", postfixFeature); update["output-csv"].AddFeature("postfix", postfixStringInput);
update["output-csv"].AddFeature("quotes", quotesFlag); update["output-csv"].AddFeature("quotes", quotesFlag);
update.AddFeature("output-doscenter", outputDoscenterFlag); update.AddFeature("output-doscenter", outputDoscenterFlag);
update.AddFeature("output-listrom", outputListromFlag); update.AddFeature("output-listrom", outputListromFlag);
update.AddFeature("output-miss", outputMissFlag); update.AddFeature("output-miss", outputMissFlag);
update["output-miss"].AddFeature("roms", romsFlag); update["output-miss"].AddFeature("roms", romsFlag);
update["output-miss"].AddFeature("game-prefix", gamePrefixFlag); update["output-miss"].AddFeature("game-prefix", gamePrefixFlag);
update["output-miss"].AddFeature("prefix", prefixFeature); update["output-miss"].AddFeature("prefix", prefixStringInput);
update["output-miss"].AddFeature("postfix", postfixFeature); update["output-miss"].AddFeature("postfix", postfixStringInput);
update["output-miss"].AddFeature("quotes", quotesFlag); update["output-miss"].AddFeature("quotes", quotesFlag);
update["output-miss"].AddFeature("add-ext", addExtFeature); update["output-miss"].AddFeature("add-extension", addExtensionStringInput);
update["output-miss"].AddFeature("rep-ext", repExtFeature); update["output-miss"].AddFeature("replace-extension", replaceExtensionStringInput);
update["output-miss"].AddFeature("remove-extensions", removeExtensionsFlag); update["output-miss"].AddFeature("remove-extensions", removeExtensionsFlag);
update["output-miss"].AddFeature("romba", rombaFlag); update["output-miss"].AddFeature("romba", rombaFlag);
update.AddFeature("output-md5", outputMd5Flag); update.AddFeature("output-md5", outputMd5Flag);
@@ -2175,27 +2175,27 @@ namespace SabreTools
update["output-sha512"].AddFeature("game-prefix", gamePrefixFlag); update["output-sha512"].AddFeature("game-prefix", gamePrefixFlag);
update.AddFeature("output-softwarelist", outputSoftwarelistFlag); update.AddFeature("output-softwarelist", outputSoftwarelistFlag);
update.AddFeature("output-tsv", outputTsvFlag); update.AddFeature("output-tsv", outputTsvFlag);
update["output-tsv"].AddFeature("prefix", prefixFeature); update["output-tsv"].AddFeature("prefix", prefixStringInput);
update["output-tsv"].AddFeature("postfix", postfixFeature); update["output-tsv"].AddFeature("postfix", postfixStringInput);
update["output-tsv"].AddFeature("quotes", quotesFlag); update["output-tsv"].AddFeature("quotes", quotesFlag);
update.AddFeature("output-xml", outputXmlFlag); update.AddFeature("output-xml", outputXmlFlag);
update.AddFeature("filename", filenameFeature); update.AddFeature("filename", filenameStringInput);
update.AddFeature("name", nameFeature); update.AddFeature("name", nameStringInput);
update.AddFeature("desc", descriptionFeature); update.AddFeature("description", descriptionStringInput);
update.AddFeature("rootdir", rootFeature); update.AddFeature("rootdir", rootStringInput);
update.AddFeature("category", categoryFeature); update.AddFeature("category", categoryStringInput);
update.AddFeature("version", versionFeature); update.AddFeature("version", versionFeature);
update.AddFeature("date", dateFeature); update.AddFeature("date", dateStringInput);
update.AddFeature("author", authorFeature); update.AddFeature("author", authorStringInput);
update.AddFeature("email", emailFeature); update.AddFeature("email", emailStringInput);
update.AddFeature("homepage", homepageFeature); update.AddFeature("homepage", homepageStringInput);
update.AddFeature("url", urlFeature); update.AddFeature("url", urlFeature);
update.AddFeature("comment", commentFeature); update.AddFeature("comment", commentStringInput);
update.AddFeature("header", headerFeature); update.AddFeature("header", headerStringInput);
update.AddFeature("superdat", superdatFlag); update.AddFeature("superdat", superdatFlag);
update.AddFeature("forcemerge", forcemergeFeature); update.AddFeature("forcemerging", forcemergingStringInput);
update.AddFeature("forcend", forcendFeature); update.AddFeature("forcenodump", forcenodumpStringInput);
update.AddFeature("forcepack", forcepackFeature); update.AddFeature("forcepacking", forcepackingStringInput);
update.AddFeature("exclude-of", excludeOfFlag); update.AddFeature("exclude-of", excludeOfFlag);
update.AddFeature("scene-date-strip", sceneDateStripFlag); update.AddFeature("scene-date-strip", sceneDateStripFlag);
update.AddFeature("clean", cleanFlag); update.AddFeature("clean", cleanFlag);
@@ -2220,7 +2220,7 @@ namespace SabreTools
update["merge"].AddFeature("no-automatic-date", noAutomaticDateFlag); update["merge"].AddFeature("no-automatic-date", noAutomaticDateFlag);
update.AddFeature("diff", diffFlag); update.AddFeature("diff", diffFlag);
update["diff"].AddFeature("against", againstFlag); update["diff"].AddFeature("against", againstFlag);
update["diff"]["against"].AddFeature("base-dat", baseDatFeature); update["diff"]["against"].AddFeature("base-dat", baseDatListInput);
update["diff"].AddFeature("no-automatic-date", noAutomaticDateFlag); update["diff"].AddFeature("no-automatic-date", noAutomaticDateFlag);
update["diff"].AddFeature("cascade", cascadeFlag); update["diff"].AddFeature("cascade", cascadeFlag);
update["diff"]["cascade"].AddFeature("skip-first-output", skipFirstOutputFlag); update["diff"]["cascade"].AddFeature("skip-first-output", skipFirstOutputFlag);
@@ -2233,50 +2233,50 @@ namespace SabreTools
update.AddFeature("diff-nd", diffNdFlag); update.AddFeature("diff-nd", diffNdFlag);
update["diff-nd"].AddFeature("no-automatic-date", noAutomaticDateFlag); update["diff-nd"].AddFeature("no-automatic-date", noAutomaticDateFlag);
update.AddFeature("base-replace", baseReplaceFlag); update.AddFeature("base-replace", baseReplaceFlag);
update["base-replace"].AddFeature("base-dat", baseDatFeature); update["base-replace"].AddFeature("base-dat", baseDatListInput);
update["base-replace"].AddFeature("update-names", updateNamesFlag); update["base-replace"].AddFeature("update-names", updateNamesFlag);
update["base-replace"].AddFeature("update-hashes", updateHashesFlag); update["base-replace"].AddFeature("update-hashes", updateHashesFlag);
update["base-replace"].AddFeature("update-description", updateDescriptionFlag); update["base-replace"].AddFeature("update-description", updateDescriptionFlag);
update["base-replace"].AddFeature("update-year", updateYearFlag); update["base-replace"].AddFeature("update-year", updateYearFlag);
update["base-replace"].AddFeature("update-manufacturer", updateManufacturerFlag); update["base-replace"].AddFeature("update-manufacturer", updateManufacturerFlag);
update.AddFeature("reverse-base-replace", reverseBaseReplaceFlag); update.AddFeature("reverse-base-replace", reverseBaseReplaceFlag);
update["reverse-base-replace"].AddFeature("base-dat", baseDatFeature); update["reverse-base-replace"].AddFeature("base-dat", baseDatListInput);
update["reverse-base-replace"].AddFeature("update-names", updateNamesFlag); update["reverse-base-replace"].AddFeature("update-names", updateNamesFlag);
update["reverse-base-replace"].AddFeature("update-hashes", updateHashesFlag); update["reverse-base-replace"].AddFeature("update-hashes", updateHashesFlag);
update["reverse-base-replace"].AddFeature("update-description", updateDescriptionFlag); update["reverse-base-replace"].AddFeature("update-description", updateDescriptionFlag);
update["reverse-base-replace"].AddFeature("update-year", updateYearFlag); update["reverse-base-replace"].AddFeature("update-year", updateYearFlag);
update["reverse-base-replace"].AddFeature("update-manufacturer", updateManufacturerFlag); update["reverse-base-replace"].AddFeature("update-manufacturer", updateManufacturerFlag);
update.AddFeature("game-name", gameNameFeature); update.AddFeature("game-name", gameNameListInput);
update.AddFeature("not-game", notGameFeature); update.AddFeature("not-game-name", notGameNameListInput);
update.AddFeature("match-of-tags", matchOfTagsFlag); update.AddFeature("match-of-tags", matchOfTagsFlag);
update.AddFeature("rom-name", romNameFeature); update.AddFeature("rom-name", itemNameListInput);
update.AddFeature("not-rom", notRomFeature); update.AddFeature("not-rom-name", notItemNameListInput);
update.AddFeature("rom-type", romTypeFeature); update.AddFeature("rom-type", itemTypeListInput);
update.AddFeature("not-type", notTypeFeature); update.AddFeature("not-type", notItemTypeListInput);
update.AddFeature("greater", greaterFeature); update.AddFeature("greater", greaterStringInput);
update.AddFeature("less", lessFeature); update.AddFeature("less", lessStringInput);
update.AddFeature("equal", equalFeature); update.AddFeature("equal", equalStringInput);
update.AddFeature("crc", crcFeature); update.AddFeature("crc", crcListInput);
update.AddFeature("not-crc", notCrcFeature); update.AddFeature("not-crc", notCrcListInput);
update.AddFeature("md5", md5Feature); update.AddFeature("md5", md5ListInput);
update.AddFeature("not-md5", notMd5Feature); update.AddFeature("not-md5", notMd5ListInput);
update.AddFeature("sha1", sha1Feature); update.AddFeature("sha1", sha1ListInput);
update.AddFeature("not-sha1", notSha1Feature); update.AddFeature("not-sha1", notSha1ListInput);
update.AddFeature("sha256", sha256Feature); update.AddFeature("sha256", sha256ListInput);
update.AddFeature("not-sha256", notSha256Feature); update.AddFeature("not-sha256", notSha256ListInput);
update.AddFeature("sha384", sha384Feature); update.AddFeature("sha384", sha384ListInput);
update.AddFeature("not-sha384", notSha384Feature); update.AddFeature("not-sha384", notSha384ListInput);
update.AddFeature("sha512", sha512Feature); update.AddFeature("sha512", sha512ListInput);
update.AddFeature("not-sha512", notSha512Feature); update.AddFeature("not-sha512", notSha512ListInput);
update.AddFeature("status", statusFeature); update.AddFeature("status", statusListInput);
update.AddFeature("not-status", notStatusFeature); update.AddFeature("not-status", notStatusListInput);
update.AddFeature("game-type", gameTypeFeature); update.AddFeature("game-type", gameTypeListInput);
update.AddFeature("not-gtype", notGtypeFeature); update.AddFeature("not-game-type", notGameTypeListInput);
update.AddFeature("runnable", runnableFlag); update.AddFeature("runnable", runnableFlag);
update.AddFeature("not-runnable", notRunnableFlag); update.AddFeature("not-runnable", notRunnableFlag);
update.AddFeature("out", outFeature); update.AddFeature("output-dir", outputDirStringInput);
update.AddFeature("inplace", inplaceFlag); update.AddFeature("inplace", inplaceFlag);
update.AddFeature("mt", mtFeature); update.AddFeature("threads", threadsInt32Input);
#endregion #endregion
@@ -2287,12 +2287,12 @@ namespace SabreTools
"Verify a folder against DATs", "Verify a folder against DATs",
FeatureType.Flag, FeatureType.Flag,
null); null);
verify.AddFeature("dat", datFeature); verify.AddFeature("dat", datListInput);
verify.AddFeature("depot", depotFlag); verify.AddFeature("depot", depotFlag);
verify.AddFeature("temp", tempFeature); verify.AddFeature("temp", tempFeature);
verify.AddFeature("hash-only", hashOnlyFlag); verify.AddFeature("hash-only", hashOnlyFlag);
verify.AddFeature("quick", quickFlag); verify.AddFeature("quick", quickFlag);
verify.AddFeature("header", headerFeature); verify.AddFeature("header", headerStringInput);
verify.AddFeature("chds-as-files", chdsAsFilesFlag); verify.AddFeature("chds-as-files", chdsAsFilesFlag);
verify.AddFeature("dat-merged", datMergedFlag); verify.AddFeature("dat-merged", datMergedFlag);
verify.AddFeature("dat-split", datSplitFlag); verify.AddFeature("dat-split", datSplitFlag);

View File

@@ -179,7 +179,8 @@ namespace SabreTools
// Check all of the flag names and translate to arguments // Check all of the flag names and translate to arguments
switch (feat.Key) switch (feat.Key)
{ {
// User flags #region User Flags
case "add-blank-files": case "add-blank-files":
addBlankFiles = true; addBlankFiles = true;
break; break;
@@ -511,63 +512,55 @@ namespace SabreTools
replaceMode |= ReplaceMode.Year; replaceMode |= ReplaceMode.Year;
break; break;
// User inputs #endregion
#region User Int32 Inputs
case "7z": case "7z":
sevenzip = (int)feat.Value.GetValue() == Int32.MinValue ? (int)feat.Value.GetValue() : 1; sevenzip = (int)feat.Value.GetValue() == Int32.MinValue ? (int)feat.Value.GetValue() : 1;
break; break;
case "add-ext": case "gz":
datHeader.AddExtension = (string)feat.Value.GetValue(); gz = (int)feat.Value.GetValue() == Int32.MinValue ? (int)feat.Value.GetValue() : 1;
break; break;
case "author": case "rar":
datHeader.Author = (string)feat.Value.GetValue(); rar = (int)feat.Value.GetValue() == Int32.MinValue ? (int)feat.Value.GetValue() : 1;
break; break;
case "threads":
int val = (int)feat.Value.GetValue();
if (val != Int32.MinValue)
{
Globals.MaxThreads = val;
}
break;
case "zip":
zip = (int)feat.Value.GetValue() == Int32.MinValue ? (int)feat.Value.GetValue() : 1;
break;
#endregion
#region User Int64 Inputs
#endregion
#region User List<string> Inputs
case "base-dat": case "base-dat":
basePaths.AddRange((List<string>)feat.Value.GetValue()); basePaths.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "category":
datHeader.Category = (string)feat.Value.GetValue();
break;
case "comment":
datHeader.Comment = (string)feat.Value.GetValue();
break;
case "crc": case "crc":
filter.CRCs.AddRange((List<string>)feat.Value.GetValue()); filter.CRCs.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "dat": case "dat":
datfiles.AddRange((List<string>)feat.Value.GetValue()); datfiles.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "date":
datHeader.Date = (string)feat.Value.GetValue();
break;
case "desc":
datHeader.Description = (string)feat.Value.GetValue();
break;
case "email":
datHeader.Email = (string)feat.Value.GetValue();
break;
case "equal":
filter.SizeEqualTo = Utilities.GetSizeFromString((string)feat.Value.GetValue());
break;
case "exta": case "exta":
exta.AddRange((List<string>)feat.Value.GetValue()); exta.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "extb": case "extb":
extb.AddRange((List<string>)feat.Value.GetValue()); extb.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "filename":
datHeader.FileName = (string)feat.Value.GetValue();
break;
case "forcemerge":
datHeader.ForceMerging = Utilities.GetForceMerging((string)feat.Value.GetValue());
break;
case "forcend":
datHeader.ForceNodump = Utilities.GetForceNodump((string)feat.Value.GetValue());
break;
case "forcepack":
datHeader.ForcePacking = Utilities.GetForcePacking((string)feat.Value.GetValue());
break;
case "game-name": case "game-name":
filter.GameNames.AddRange((List<string>)feat.Value.GetValue()); filter.MachineNames.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "game-type": case "game-type":
foreach (string mach in (List<string>)feat.Value.GetValue()) foreach (string mach in (List<string>)feat.Value.GetValue())
@@ -575,61 +568,36 @@ namespace SabreTools
filter.MachineTypes |= Utilities.GetMachineType(mach); filter.MachineTypes |= Utilities.GetMachineType(mach);
} }
break; break;
case "greater": case "item-name":
filter.SizeGreaterThanOrEqual = Utilities.GetSizeFromString((string)feat.Value.GetValue()); filter.ItemNames.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "gz": case "item-type":
gz = (int)feat.Value.GetValue() == Int32.MinValue ? (int)feat.Value.GetValue() : 1; filter.ItemTypes.AddRange((List<string>)feat.Value.GetValue());
break;
case "header":
datHeader.Header = (string)feat.Value.GetValue();
break;
case "homepage":
datHeader.Homepage = (string)feat.Value.GetValue();
break;
case "less":
filter.SizeLessThanOrEqual = Utilities.GetSizeFromString((string)feat.Value.GetValue());
break; break;
case "md5": case "md5":
filter.MD5s.AddRange((List<string>)feat.Value.GetValue()); filter.MD5s.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "mt":
int val = (int)feat.Value.GetValue();
if (val != Int32.MinValue)
{
Globals.MaxThreads = val;
}
break;
case "name":
datHeader.Name = (string)feat.Value.GetValue();
break;
case "not-crc": case "not-crc":
filter.NotCRCs.AddRange((List<string>)feat.Value.GetValue()); filter.NotCRCs.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "not-game": case "not-game-name":
filter.NotGameNames.AddRange((List<string>)feat.Value.GetValue()); filter.NotMachineNames.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "not-gtype": case "not-game-type":
foreach (string nmach in (List<string>)feat.Value.GetValue()) foreach (string nmach in (List<string>)feat.Value.GetValue())
{ {
filter.NotMachineTypes |= Utilities.GetMachineType(nmach); filter.NotMachineTypes |= Utilities.GetMachineType(nmach);
} }
break; break;
case "not-status": case "not-item-name":
foreach (string nstat in (List<string>)feat.Value.GetValue()) filter.NotItemNames.AddRange((List<string>)feat.Value.GetValue());
{ break;
filter.NotItemStatuses |= Utilities.GetItemStatus(nstat); case "not-item-type":
} filter.NotItemTypes.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "not-md5": case "not-md5":
filter.NotMD5s.AddRange((List<string>)feat.Value.GetValue()); filter.NotMD5s.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "not-rom":
filter.NotRomNames.AddRange((List<string>)feat.Value.GetValue());
break;
case "not-type":
filter.NotRomTypes.AddRange((List<string>)feat.Value.GetValue());
break;
case "not-sha1": case "not-sha1":
filter.NotSHA1s.AddRange((List<string>)feat.Value.GetValue()); filter.NotSHA1s.AddRange((List<string>)feat.Value.GetValue());
break; break;
@@ -642,32 +610,11 @@ namespace SabreTools
case "not-sha512": case "not-sha512":
filter.NotSHA512s.AddRange((List<string>)feat.Value.GetValue()); filter.NotSHA512s.AddRange((List<string>)feat.Value.GetValue());
break; break;
case "out": case "not-status":
outDir = (string)feat.Value.GetValue(); foreach (string nstat in (List<string>)feat.Value.GetValue())
break; {
case "postfix": filter.NotItemStatuses |= Utilities.GetItemStatus(nstat);
datHeader.Postfix = (string)feat.Value.GetValue(); }
break;
case "prefix":
datHeader.Prefix = (string)feat.Value.GetValue();
break;
case "rar":
rar = (int)feat.Value.GetValue() == Int32.MinValue ? (int)feat.Value.GetValue() : 1;
break;
case "rep-ext":
datHeader.ReplaceExtension = (string)feat.Value.GetValue();
break;
case "root":
datHeader.RootDir = (string)feat.Value.GetValue();
break;
case "rom-name":
filter.RomNames.AddRange((List<string>)feat.Value.GetValue());
break;
case "rom-type":
filter.RomTypes.AddRange((List<string>)feat.Value.GetValue());
break;
case "root-dir":
filter.Root = (string)feat.Value.GetValue();
break; break;
case "sha1": case "sha1":
filter.SHA1s.AddRange((List<string>)feat.Value.GetValue()); filter.SHA1s.AddRange((List<string>)feat.Value.GetValue());
@@ -687,6 +634,80 @@ namespace SabreTools
filter.ItemStatuses |= Utilities.GetItemStatus(stat); filter.ItemStatuses |= Utilities.GetItemStatus(stat);
} }
break; break;
#endregion
#region User String Inputs
case "add-extension":
datHeader.AddExtension = (string)feat.Value.GetValue();
break;
case "author":
datHeader.Author = (string)feat.Value.GetValue();
break;
case "category":
datHeader.Category = (string)feat.Value.GetValue();
break;
case "comment":
datHeader.Comment = (string)feat.Value.GetValue();
break;
case "date":
datHeader.Date = (string)feat.Value.GetValue();
break;
case "description":
datHeader.Description = (string)feat.Value.GetValue();
break;
case "email":
datHeader.Email = (string)feat.Value.GetValue();
break;
case "equal":
filter.SizeEqualTo = Utilities.GetSizeFromString((string)feat.Value.GetValue());
break;
case "filename":
datHeader.FileName = (string)feat.Value.GetValue();
break;
case "forcemerging":
datHeader.ForceMerging = Utilities.GetForceMerging((string)feat.Value.GetValue());
break;
case "forcenodump":
datHeader.ForceNodump = Utilities.GetForceNodump((string)feat.Value.GetValue());
break;
case "forcepacking":
datHeader.ForcePacking = Utilities.GetForcePacking((string)feat.Value.GetValue());
break;
case "greater":
filter.SizeGreaterThanOrEqual = Utilities.GetSizeFromString((string)feat.Value.GetValue());
break;
case "header":
datHeader.Header = (string)feat.Value.GetValue();
break;
case "homepage":
datHeader.Homepage = (string)feat.Value.GetValue();
break;
case "less":
filter.SizeLessThanOrEqual = Utilities.GetSizeFromString((string)feat.Value.GetValue());
break;
case "name":
datHeader.Name = (string)feat.Value.GetValue();
break;
case "output-dir":
outDir = (string)feat.Value.GetValue();
break;
case "postfix":
datHeader.Postfix = (string)feat.Value.GetValue();
break;
case "prefix":
datHeader.Prefix = (string)feat.Value.GetValue();
break;
case "replace-extension":
datHeader.ReplaceExtension = (string)feat.Value.GetValue();
break;
case "root":
datHeader.RootDir = (string)feat.Value.GetValue();
break;
case "root-dir":
filter.Root = (string)feat.Value.GetValue();
break;
case "temp": case "temp":
tempDir = (string)feat.Value.GetValue(); tempDir = (string)feat.Value.GetValue();
break; break;
@@ -696,9 +717,8 @@ namespace SabreTools
case "version": case "version":
datHeader.Version = (string)feat.Value.GetValue(); datHeader.Version = (string)feat.Value.GetValue();
break; break;
case "zip":
zip = (int)feat.Value.GetValue() == Int32.MinValue ? (int)feat.Value.GetValue() : 1; #endregion
break;
} }
} }