diff --git a/DATabase/DATabase.cs b/DATabase/DATabase.cs
index 6fc0a92f..730f1089 100644
--- a/DATabase/DATabase.cs
+++ b/DATabase/DATabase.cs
@@ -102,7 +102,7 @@ namespace SabreTools
// If more than one switch is enabled or help is set, show the help screen
if (help || !(import ^ generate ^ listsys ^ listsrc ^ genall ^ add ^ rem ^ convertRV ^ convertXml))
{
- Help();
+ Build.Help();
logger.Close();
return;
}
@@ -167,7 +167,7 @@ namespace SabreTools
}
else
{
- Help();
+ Build.Help();
}
}
@@ -184,7 +184,7 @@ namespace SabreTools
}
else
{
- Help();
+ Build.Help();
}
}
@@ -239,7 +239,7 @@ Make a selection:
switch (selection)
{
case "1":
- Help();
+ Build.Help();
break;
case "2":
ImportMenu();
@@ -282,56 +282,6 @@ Make a selection:
Console.WriteLine("Thank you for using DATabase!");
}
- ///
- /// Show the help dialog
- ///
- private static void Help()
- {
- Console.Clear();
- Console.Write(@"
-DATabase - Import and Generate DAT files
------------------------------------------
-Usage: DATabase [option] [filename|dirname|]
-
-Options:
- -h, -?, --help Show this help
- -i, --import Start tool in import mode
- A filename or folder is required to run
- -g, --generate Start tool in generate mode
- system=sy,... List of system IDs
- source=so,... List of source IDs
- out=dir Output directory
- -nr, --no-rename Don't auto-rename games
- -old, --romvault Produce a DAT in RV format
- -ga, --generate-all Start tool in generate all mode
- -lso, --list-sources List all sources (id <= name)
- -lsy, --list-systems List all systems (id <= name)
- -cr, --convert-rv Convert an XML DAT to RV
- -cx, --convert-xml Convert a RV DAT to XML
- Both converters require a filename or folder
- -l, --log Enable logging of program output
-");
-
- Console.Write("\nPress any key to continue...");
- Console.ReadKey();
- Console.Write(@"
-Database Options:
- -a, --add Add a new system or source to the database
- manu=mn Manufacturer name (system only)
- system=sy System name (system only)
- source=sr Source name (source only)
- url=ul URL (source only)
- -r, --remove Remove a system or source from the database
- system=sy System ID
- source=so Source ID
-
-Filenames and directories can't start with '-', 'system=', or 'source='
-unless prefixed by 'input='");
- Console.Write("\nPress any key to continue...");
- Console.ReadKey();
- return;
- }
-
///
/// Show the text-based import menu
///
diff --git a/DatSplit/DatSplit.cs b/DatSplit/DatSplit.cs
index fdda9d85..4fe315d7 100644
--- a/DatSplit/DatSplit.cs
+++ b/DatSplit/DatSplit.cs
@@ -20,7 +20,7 @@ namespace DatSplit
// If we don't have arguments, show help
if (args.Length == 0 && args.Length != 3)
{
- Help();
+ Build.Help();
return;
}
@@ -158,10 +158,5 @@ namespace DatSplit
string outPathB = Path.GetFileNameWithoutExtension(_filename) + _extB + Path.GetExtension(_filename);
File.WriteAllText(outPathB, Style.Beautify(outDocB), Encoding.UTF8);
}
-
- public static void Help()
- {
- Console.WriteLine("DatSplit.exe ");
- }
}
}
diff --git a/Deheader/Headerer.cs b/Deheader/Headerer.cs
index 0ef2a645..498987ff 100644
--- a/Deheader/Headerer.cs
+++ b/Deheader/Headerer.cs
@@ -18,13 +18,6 @@ namespace SabreTools
private static string _dbName = "Headerer.sqlite";
private static string _connectionString = "Data Source=" + _dbName + ";Version = 3;";
private static Dictionary types;
- private static string help = @"Deheader - Remove headers from roms
------------------------------------------
-Usage: Deheader [option] [filename|dirname]
-
-Options:
- -e Detect and remove mode
- -r Restore header to file based on SHA-1";
///
/// Start deheader operation with supplied parameters
@@ -48,7 +41,7 @@ Options:
if (args.Length == 0 || args.Length > 2)
{
- Console.WriteLine(help);
+ Build.Help();
return;
}
@@ -95,7 +88,7 @@ Options:
// Else, show that help text
else
{
- Console.WriteLine(help);
+ Build.Help();
}
}
else
@@ -119,7 +112,7 @@ Options:
// Else, show that help text
else
{
- Console.WriteLine(help);
+ Build.Help();
}
}
}
diff --git a/SabreHelper/Build.cs b/SabreHelper/Build.cs
index 8b2c194b..c770de94 100644
--- a/SabreHelper/Build.cs
+++ b/SabreHelper/Build.cs
@@ -1,4 +1,8 @@
-namespace SabreTools.Helper
+using System;
+using System.Diagnostics;
+using System.Reflection;
+
+namespace SabreTools.Helper
{
public class Build
{
@@ -6,5 +10,90 @@
{
get { return "0.4.0.0"; }
}
+
+ ///
+ /// Show the help dialog for a given class
+ ///
+ public static void Help()
+ {
+ //http://stackoverflow.com/questions/14849367/how-to-determine-calling-method-and-class-name
+ StackTrace st = new StackTrace();
+ string className = st.GetFrame(1).GetMethod().ReflectedType.Name;
+
+ switch (className)
+ {
+ case "DATabase":
+ Console.Clear();
+ Console.Write(@"
+DATabase - Import and Generate DAT files
+-----------------------------------------
+Usage: DATabase [option] [filename|dirname|]
+
+Options:
+ -h, -?, --help Show this help
+ -i, --import Start tool in import mode
+ A filename or folder is required to run
+ -g, --generate Start tool in generate mode
+ system=sy,... List of system IDs
+ source=so,... List of source IDs
+ out=dir Output directory
+ -nr, --no-rename Don't auto-rename games
+ -old, --romvault Produce a DAT in RV format
+ -ga, --generate-all Start tool in generate all mode
+ -lso, --list-sources List all sources (id <= name)
+ -lsy, --list-systems List all systems (id <= name)
+ -cr, --convert-rv Convert an XML DAT to RV
+ -cx, --convert-xml Convert a RV DAT to XML
+ Both converters require a filename or folder
+ -l, --log Enable logging of program output
+");
+
+ Console.Write("\nPress any key to continue...");
+ Console.ReadKey();
+ Console.Write(@"
+Database Options:
+ -a, --add Add a new system or source to the database
+ manu=mn Manufacturer name (system only)
+ system=sy System name (system only)
+ source=sr Source name (source only)
+ url=ul URL (source only)
+ -r, --remove Remove a system or source from the database
+ system=sy System ID
+ source=so Source ID
+
+Filenames and directories can't start with '-', 'system=', or 'source='
+unless prefixed by 'input='");
+ Console.Write("\nPress any key to continue...");
+ Console.ReadKey();
+ break;
+ case "DatSplit":
+ Console.WriteLine(@"DatSplit - Split DAT files by file extension
+-----------------------------------------
+Usage: DatSplit.exe ");
+ break;
+ case "Headerer":
+ Console.WriteLine(@"Headerer - Remove and restore rom headers
+-----------------------------------------
+Usage: Headerer [option] [filename|dirname]
+
+Options:
+ -e Detect and remove mode
+ -r Restore header to file based on SHA-1");
+ break;
+ case "SingleGame":
+ Console.WriteLine(@"SingleGame - Process DATs for use in server environments
+-----------------------------------------
+Usage: SingleGame.exe [-r=rootdir|-n]
+
+Options:
+ -r=rootdir Set the directory name for path size
+ -n Disable single-game mode
+");
+ break;
+ default:
+ Console.Write("This is the default help output");
+ break;
+ }
+ }
}
}
diff --git a/SingleGame/SingleGame.cs b/SingleGame/SingleGame.cs
index a74b4045..a5ea068c 100644
--- a/SingleGame/SingleGame.cs
+++ b/SingleGame/SingleGame.cs
@@ -18,7 +18,7 @@ namespace SabreTools
if (args.Length == 0)
{
- Help();
+ Build.Help();
return;
}
@@ -152,13 +152,5 @@ namespace SabreTools
string outPath = Path.GetFileNameWithoutExtension(_filename) + ".new" + Path.GetExtension(_filename);
File.WriteAllText(outPath, Style.Beautify(tempDoc));
}
-
- private static void Help()
- {
- Console.WriteLine(@"SingleGame.exe [-r=rootdir|-n]
- -r=rootdir Set the directory name for path size
- -n Disable single-game mode
-");
- }
}
}