diff --git a/DATabaseTwo/DATabaseTwo.cs b/DATabaseTwo/DATabaseTwo.cs
index a6b7b54c..b28386cc 100644
--- a/DATabaseTwo/DATabaseTwo.cs
+++ b/DATabaseTwo/DATabaseTwo.cs
@@ -53,8 +53,32 @@ namespace SabreTools
_logger = new Logger(true, "database2.log");
_logger.Start();
+ Remapping.CreateRemappings();
+ Build.Start("DATabaseTwo");
+
+ // Perform initial database and folder setup
+ if (!Directory.Exists(_datroot))
+ {
+ Directory.CreateDirectory(_datroot);
+ }
+ if (!Directory.Exists(_outroot))
+ {
+ Directory.CreateDirectory(_outroot);
+ }
+ DBTools.EnsureDatabase(_dbName, _connectionString);
+
+ // If there's no arguments, show the menu
+ if (args.Length == 0)
+ {
+ _logger.ToFile = true;
+ ShowMainMenu();
+ _logger.Close();
+ return;
+ }
+
// Set all default values
bool help = false,
+ gen = false,
genall = false,
ignore = false,
listsys = false,
@@ -72,6 +96,10 @@ namespace SabreTools
case "--help":
help = true;
break;
+ case "-g":
+ case "--generate":
+ gen = true;
+ break;
case "-ga":
case "--generate-all":
genall = true;
@@ -117,18 +145,6 @@ namespace SabreTools
return;
}
- // Call initial setup because everything after here requires it
- Import(ignore);
-
- // If there's no arguments, show the menu
- if (args.Length == 0)
- {
- _logger.ToFile = true;
- ShowMainMenu();
- _logger.Close();
- return;
- }
-
// If we want a list of systems
if (listsys)
{
@@ -138,12 +154,14 @@ namespace SabreTools
// If we want to generate all DATs
else if (genall)
{
+ Import(ignore);
InitGenerateAll(norename, old);
}
// If we want to generate a DAT
- else
+ else if (gen)
{
+ Import(ignore);
InitGenerate(system, norename, old);
}
@@ -168,10 +186,11 @@ namespace SabreTools
Make a selection:
1) Show command line usage
- 2) Generate System DATs
- 3) List all available systems
- 4) " + (_logger.ToFile ? "Disable Logging" : "Enable Logging") + @"
- 5) Show credits
+ 2) Check for new or changed DATs
+ 3) Generate System DATs
+ 4) List all available systems
+ 5) " + (_logger.ToFile ? "Disable Logging" : "Enable Logging") + @"
+ 6) Show credits
X) Exit Program
");
Console.Write("Enter selection: ");
@@ -186,19 +205,22 @@ Make a selection:
Console.ReadKey();
break;
case "2":
- GenerateMenu();
+ ImportMenu();
break;
case "3":
+ GenerateMenu();
+ break;
+ case "4":
Console.Clear();
Build.Start("DATabaseTwo");
ListSystems();
Console.Write("\nPress any key to continue...");
Console.ReadKey();
break;
- case "4":
+ case "5":
_logger.ToFile = !_logger.ToFile;
break;
- case "5":
+ case "6":
Console.Clear();
Build.Credits();
Console.Write("\nPress any key to continue...");
@@ -208,6 +230,44 @@ Make a selection:
}
}
+ ///
+ /// Show the text-based import menu
+ ///
+ private static void ImportMenu()
+ {
+ string selection = "";
+ bool ignore = false;
+ while (selection.ToLowerInvariant() != "b")
+ {
+ Console.Clear();
+ Build.Start("DATabaseTwo");
+ Console.WriteLine(@"IMPORT MENU
+===========================
+Make a selection:
+
+ 1) " + (ignore ? "Enable new source prompt" : "Disable new source prompt") + @"
+ 2) Begin import process
+ B) Go back to the previous menu
+");
+ Console.Write("Enter selection: ");
+ selection = Console.ReadLine();
+ switch (selection)
+ {
+ case "1":
+ ignore = !ignore;
+ break;
+ case "2":
+ Console.Clear();
+ Import(ignore);
+ Console.Write("\nPress any key to continue...");
+ Console.ReadKey();
+ ignore = false;
+ break;
+ }
+ }
+ return;
+ }
+
///
/// Show the text-based generate menu
///
@@ -218,7 +278,7 @@ Make a selection:
while (selection.ToLowerInvariant() != "b")
{
Console.Clear();
- Build.Start("DATabase");
+ Build.Start("DATabaseTwo");
Console.WriteLine(@"GENERATE MENU
===========================
Make a selection:
@@ -515,28 +575,12 @@ ORDER BY system.manufacturer, system.name";
#region Helper Methods
///
- /// Perform initial setup for the program
+ /// Perform initial or incremental import of DATs in the root folder
///
/// False if each DAT that has no defined source asks for user input (default), true otherwise
private static void Import(bool ignore = false)
{
- Remapping.CreateRemappings();
- Build.Start("DATabaseTwo");
-
- _logger.Log("Beginning setup...");
-
- // Perform initial database and folder setup
- if (!Directory.Exists(_datroot))
- {
- Directory.CreateDirectory(_datroot);
- }
- if (!Directory.Exists(_outroot))
- {
- Directory.CreateDirectory(_outroot);
- }
-
- DBTools.EnsureDatabase(_dbName, _connectionString);
-
+ _logger.Log("Beginning import/update process");
using (SqliteConnection dbc = new SqliteConnection(_connectionString))
{
dbc.Open();
@@ -706,7 +750,7 @@ VALUES (" + hashid + ", 'source', '" + sourceid + @"'),
}
}
- _logger.Log("Setup complete!");
+ _logger.Log("Import/update process complete!");
}
///
diff --git a/SabreHelper/Build.cs b/SabreHelper/Build.cs
index a277feec..727a99f5 100644
--- a/SabreHelper/Build.cs
+++ b/SabreHelper/Build.cs
@@ -199,6 +199,7 @@ Usage: DATabaseTwo [options]
Options:
-h, -?, --help Show this help dialog
+ -g, --generate Start tool in generate mode
-ga, --generate-all Start tool in generate all mode
-i, --ignore Don't prompt for new sources
-lsy, --list-systems List all systems (id <= name)