From 6e47a1d80990506210ae448f2a9de6f60826b22b Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 23 Jan 2018 10:54:29 -0800 Subject: [PATCH] [Constants, Skippers/, Tools/] Fix header extract Use full paths in the name of the database to avoid output folder issues during script runs and make sure that Skippers are created with the absolute bare minimum set. --- SabreTools.Library/Data/Constants.cs | 10 ++++++++-- SabreTools.Library/Skippers/Skipper.cs | 4 ++-- SabreTools.Library/Skippers/SkipperRule.cs | 5 +---- SabreTools.Library/Tools/DatabaseTools.cs | 1 - SabreTools.Library/Tools/Utilities.cs | 5 +---- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/SabreTools.Library/Data/Constants.cs b/SabreTools.Library/Data/Constants.cs index 25d5c96a..ffad4136 100644 --- a/SabreTools.Library/Data/Constants.cs +++ b/SabreTools.Library/Data/Constants.cs @@ -3,6 +3,12 @@ using System.Reflection; using SabreTools.Library.Tools; +#if MONO +using System.IO; +#else +using Alphaleonis.Win32.Filesystem; +#endif + namespace SabreTools.Library.Data { /// @@ -92,8 +98,8 @@ namespace SabreTools.Library.Data #region Database schema public const string HeadererDbSchema = "Headerer"; - public const string HeadererFileName = "Headerer.sqlite"; - public const string HeadererConnectionString = "Data Source=" + HeadererFileName + ";Version = 3;"; + public static string HeadererFileName = Path.Combine(Globals.ExeDir, "Headerer.sqlite"); + public static string HeadererConnectionString = "Data Source=" + HeadererFileName + ";Version = 3;"; #endregion diff --git a/SabreTools.Library/Skippers/Skipper.cs b/SabreTools.Library/Skippers/Skipper.cs index 61c0c419..7c60ca15 100644 --- a/SabreTools.Library/Skippers/Skipper.cs +++ b/SabreTools.Library/Skippers/Skipper.cs @@ -107,8 +107,8 @@ namespace SabreTools.Library.Skippers // Get the information from the rule first SkipperRule rule = new SkipperRule { - StartOffset = 0, - EndOffset = 0, + StartOffset = null, + EndOffset = null, Operation = HeaderSkipOperation.None, Tests = new List(), SourceFile = Path.GetFileNameWithoutExtension(filename), diff --git a/SabreTools.Library/Skippers/SkipperRule.cs b/SabreTools.Library/Skippers/SkipperRule.cs index 790878d3..f626e840 100644 --- a/SabreTools.Library/Skippers/SkipperRule.cs +++ b/SabreTools.Library/Skippers/SkipperRule.cs @@ -44,10 +44,7 @@ namespace SabreTools.Library.Skippers } // Create the output directory if it doesn't already - if (!Directory.Exists(Path.GetDirectoryName(output))) - { - Directory.CreateDirectory(Path.GetDirectoryName(output)); - } + Utilities.EnsureOutputDirectory(Path.GetDirectoryName(output)); Globals.Logger.User("Attempting to apply rule to '{0}'", input); success = TransformStream(Utilities.TryOpenRead(input), Utilities.TryCreate(output)); diff --git a/SabreTools.Library/Tools/DatabaseTools.cs b/SabreTools.Library/Tools/DatabaseTools.cs index 38d5d80a..c1e75a2c 100644 --- a/SabreTools.Library/Tools/DatabaseTools.cs +++ b/SabreTools.Library/Tools/DatabaseTools.cs @@ -67,7 +67,6 @@ namespace SabreTools.Library.Tools type = type.ToLowerInvariant(); // Make sure the file exists - db = Path.Combine(Globals.ExeDir, db); if (!File.Exists(db)) { SqliteConnection.CreateFile(db); diff --git a/SabreTools.Library/Tools/Utilities.cs b/SabreTools.Library/Tools/Utilities.cs index 416ce255..91475ae1 100644 --- a/SabreTools.Library/Tools/Utilities.cs +++ b/SabreTools.Library/Tools/Utilities.cs @@ -1437,10 +1437,7 @@ namespace SabreTools.Library.Tools public static bool DetectSkipperAndTransform(string file, string outDir, bool nostore) { // Create the output directory if it doesn't exist - if (!String.IsNullOrWhiteSpace(outDir) && !Directory.Exists(outDir)) - { - Directory.CreateDirectory(outDir); - } + EnsureOutputDirectory(outDir, create: true); Globals.Logger.User("\nGetting skipper information for '{0}'", file);