diff --git a/Deheader/Headerer.csproj b/Deheader/Headerer.csproj
index f115de5a..c3e59492 100644
--- a/Deheader/Headerer.csproj
+++ b/Deheader/Headerer.csproj
@@ -79,7 +79,7 @@
-
+
diff --git a/Deheader/HeadererApp.cs b/Deheader/HeadererApp.cs
new file mode 100644
index 00000000..cd4ef42f
--- /dev/null
+++ b/Deheader/HeadererApp.cs
@@ -0,0 +1,140 @@
+using SabreTools.Helper;
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace SabreTools
+{
+ ///
+ /// Entry class for the Deheader application
+ ///
+ public class HeadererApp
+ {
+ // Private required variables
+ private static string _headererDbSchema = "Headerer";
+ private static string _headererDbName = "Headerer.sqlite";
+ private static string _headererConnectionString = "Data Source=" + _headererDbName + ";Version = 3;";
+
+ ///
+ /// Start deheader operation with supplied parameters
+ ///
+ /// String array representing command line parameters
+ public static void Main(string[] args)
+ {
+ // If output is being redirected, don't allow clear screens
+ if (!Console.IsOutputRedirected)
+ {
+ Console.Clear();
+ }
+
+ // Perform initial setup and verification
+ Logger logger = new Logger(true, "headerer.log");
+ logger.Start();
+ DBTools.EnsureDatabase(_headererDbSchema, _headererDbName, _headererConnectionString);
+
+ // Credits take precidence over all
+ if ((new List(args)).Contains("--credits"))
+ {
+ Build.Credits();
+ return;
+ }
+
+ // If we have no arguments, show the help
+ if (args.Length == 0)
+ {
+ Build.Help();
+ logger.Close();
+ return;
+ }
+
+ // Output the title
+ Build.Start("Headerer");
+
+ // Get the filename (or foldername)
+ string input = "";
+ bool help = false,
+ extract = true,
+ headerer = true;
+ foreach (string arg in args)
+ {
+ string temparg = arg.Replace("\"", "").Replace("file://", "");
+ switch (temparg)
+ {
+ case "-?":
+ case "-h":
+ case "--help":
+ help = true;
+ break;
+ case "-e":
+ case "--extract":
+ extract = true;
+ break;
+ case "-r":
+ case "--restore":
+ extract = false;
+ break;
+ default:
+ if (File.Exists(temparg) || Directory.Exists(temparg))
+ {
+ input = temparg;
+ }
+ else
+ {
+ logger.Error("Invalid input detected: " + arg);
+ Console.WriteLine();
+ Build.Help();
+ Console.WriteLine();
+ logger.Error("Invalid input detected: " + arg);
+ logger.Close();
+ return;
+ }
+ break;
+ }
+ }
+
+ // If help is set, show the help screen
+ if (help)
+ {
+ Build.Help();
+ logger.Close();
+ return;
+ }
+
+ // If a switch that requires a filename is set and no file is, show the help screen
+ if (String.IsNullOrEmpty(input) && (headerer))
+ {
+ logger.Error("This feature requires at least one input");
+ Build.Help();
+ logger.Close();
+ return;
+ }
+
+ // If we're in headerer mode
+ if (headerer)
+ {
+ InitHeaderer(input, extract, logger);
+ }
+
+ // If nothing is set, show the help
+ else
+ {
+ Build.Help();
+ }
+
+ logger.Close();
+ return;
+ }
+
+ ///
+ /// Wrap extracting and replacing headers
+ ///
+ /// Input file or folder name
+ /// True if we're extracting headers (default), false if we're replacing them
+ /// Logger object for file and console output
+ private static void InitHeaderer(string input, bool flag, Logger logger)
+ {
+ Headerer headerer = new Headerer(input, flag, logger);
+ headerer.Process();
+ }
+ }
+}
diff --git a/Deheader/Headerer.cs b/SabreTools.Helper/Objects/Headerer.cs
similarity index 69%
rename from Deheader/Headerer.cs
rename to SabreTools.Helper/Objects/Headerer.cs
index 1093e1ae..da01fedc 100644
--- a/Deheader/Headerer.cs
+++ b/SabreTools.Helper/Objects/Headerer.cs
@@ -34,128 +34,6 @@ namespace SabreTools
_logger = logger;
}
- ///
- /// Start deheader operation with supplied parameters
- ///
- /// String array representing command line parameters
- public static void Main(string[] args)
- {
- // If output is being redirected, don't allow clear screens
- if (!Console.IsOutputRedirected)
- {
- Console.Clear();
- }
-
- // Perform initial setup and verification
- Logger logger = new Logger(true, "headerer.log");
- logger.Start();
- DBTools.EnsureDatabase(_dbSchema, _dbName, _connectionString);
-
- // Credits take precidence over all
- if ((new List(args)).Contains("--credits"))
- {
- Build.Credits();
- return;
- }
-
- // If we have no arguments, show the help
- if (args.Length == 0)
- {
- Build.Help();
- logger.Close();
- return;
- }
-
- // Output the title
- Build.Start("Headerer");
-
- // Get the filename (or foldername)
- string input = "";
- bool help = false,
- extract = true,
- headerer = true;
- foreach (string arg in args)
- {
- string temparg = arg.Replace("\"", "").Replace("file://", "");
- switch (temparg)
- {
- case "-?":
- case "-h":
- case "--help":
- help = true;
- break;
- case "-e":
- case "--extract":
- extract = true;
- break;
- case "-r":
- case "--restore":
- extract = false;
- break;
- default:
- if (File.Exists(temparg) || Directory.Exists(temparg))
- {
- input = temparg;
- }
- else
- {
- logger.Error("Invalid input detected: " + arg);
- Console.WriteLine();
- Build.Help();
- Console.WriteLine();
- logger.Error("Invalid input detected: " + arg);
- logger.Close();
- return;
- }
- break;
- }
- }
-
- // If help is set, show the help screen
- if (help)
- {
- Build.Help();
- logger.Close();
- return;
- }
-
- // If a switch that requires a filename is set and no file is, show the help screen
- if (String.IsNullOrEmpty(input) && (headerer))
- {
- logger.Error("This feature requires at least one input");
- Build.Help();
- logger.Close();
- return;
- }
-
- // If we're in headerer mode
- if (headerer)
- {
- InitHeaderer(input, extract, logger);
- }
-
- // If nothing is set, show the help
- else
- {
- Build.Help();
- }
-
- logger.Close();
- return;
- }
-
- ///
- /// Wrap extracting and replacing headers
- ///
- /// Input file or folder name
- /// True if we're extracting headers (default), false if we're replacing them
- /// Logger object for file and console output
- private static void InitHeaderer(string input, bool flag, Logger logger)
- {
- Headerer headerer = new Headerer(input, flag, logger);
- headerer.Process();
- }
-
///
/// Extract and remove or replace headers
///
diff --git a/SabreTools.Helper/SabreTools.Helper.csproj b/SabreTools.Helper/SabreTools.Helper.csproj
index 068d8e9b..9d0eea7a 100644
--- a/SabreTools.Helper/SabreTools.Helper.csproj
+++ b/SabreTools.Helper/SabreTools.Helper.csproj
@@ -91,6 +91,7 @@
+