[TGZTest, ArchiveTools] Add Romba depot output

This commit is contained in:
Matt Nadareski
2016-08-25 10:26:52 -07:00
parent 668e25152a
commit 0e4b76f1b3
2 changed files with 29 additions and 6 deletions

View File

@@ -596,9 +596,10 @@ namespace SabreTools.Helper
/// </summary> /// </summary>
/// <param name="input">File to write from</param> /// <param name="input">File to write from</param>
/// <param name="outdir">Directory to write archive to</param> /// <param name="outdir">Directory to write archive to</param>
/// <param name="romba">True if files should be output in Romba depot folders, false otherwise</param>
/// <param name="logger">Logger object for file and console output</param> /// <param name="logger">Logger object for file and console output</param>
/// <returns>True if the write was a success, false otherwise</returns> /// <returns>True if the write was a success, false otherwise</returns>
public static bool WriteTorrentGZ(string input, string outdir, Logger logger) public static bool WriteTorrentGZ(string input, string outdir, bool romba, Logger logger)
{ {
// Check that the input file exists // Check that the input file exists
if (!File.Exists(input)) if (!File.Exists(input))
@@ -668,6 +669,19 @@ namespace SabreTools.Helper
} }
} }
// If we're in romba mode, create the subfolder and move the file
if (romba)
{
string subfolder = Path.Combine(rom.SHA1.Substring(0, 2), rom.SHA1.Substring(2, 2), rom.SHA1.Substring(4, 2), rom.SHA1.Substring(6, 2));
outdir = Path.Combine(outdir, subfolder);
if (!Directory.Exists(outdir))
{
Directory.CreateDirectory(outdir);
}
File.Move(input, Path.Combine(outdir, input));
}
return true; return true;
} }

View File

@@ -11,6 +11,7 @@ namespace SabreTools
private List<string> _inputs; private List<string> _inputs;
private string _outdir; private string _outdir;
private bool _delete; private bool _delete;
private bool _romba;
private Logger _logger; private Logger _logger;
/// <summary> /// <summary>
@@ -19,12 +20,14 @@ namespace SabreTools
/// <param name="inputs">List of all inputted files and folders</param> /// <param name="inputs">List of all inputted files and folders</param>
/// <param name="outdir">Output directory (empty for default directory)</param> /// <param name="outdir">Output directory (empty for default directory)</param>
/// <param name="delete">True if input files should be deleted, false otherwise</param> /// <param name="delete">True if input files should be deleted, false otherwise</param>
/// <param name="romba">True if files should be output in Romba depot folders, false otherwise</param>
/// <param name="logger">Logger object for file and console output</param> /// <param name="logger">Logger object for file and console output</param>
public TGZTest(List<string> inputs, string outdir, bool delete, Logger logger) public TGZTest(List<string> inputs, string outdir, bool delete, bool romba, Logger logger)
{ {
_inputs = inputs; _inputs = inputs;
_outdir = (String.IsNullOrEmpty(outdir) ? "tgz" : outdir); _outdir = (String.IsNullOrEmpty(outdir) ? "tgz" : outdir);
_delete = delete; _delete = delete;
_romba = romba;
_logger = logger; _logger = logger;
} }
@@ -65,6 +68,7 @@ namespace SabreTools
// Set all default values // Set all default values
bool help = false, bool help = false,
delete = false, delete = false,
romba = false,
tgz = true; tgz = true;
string outdir = ""; string outdir = "";
List<string> inputs = new List<string>(); List<string> inputs = new List<string>();
@@ -85,6 +89,10 @@ namespace SabreTools
case "--delete": case "--delete":
delete = true; delete = true;
break; break;
case "-r":
case "--romba":
romba = true;
break;
default: default:
if (temparg.StartsWith("-out=") || temparg.StartsWith("--out=")) if (temparg.StartsWith("-out=") || temparg.StartsWith("--out="))
{ {
@@ -126,7 +134,7 @@ namespace SabreTools
// If we are doing a simple sort // If we are doing a simple sort
if (tgz) if (tgz)
{ {
InitTGZTest(inputs, outdir, delete, logger); InitTGZTest(inputs, outdir, delete, romba, logger);
} }
// If nothing is set, show the help // If nothing is set, show the help
@@ -145,8 +153,9 @@ namespace SabreTools
/// <param name="inputs">List of all inputted files and folders</param> /// <param name="inputs">List of all inputted files and folders</param>
/// <param name="outdir">Output directory (empty for default directory)</param> /// <param name="outdir">Output directory (empty for default directory)</param>
/// <param name="delete">True if input files should be deleted, false otherwise</param> /// <param name="delete">True if input files should be deleted, false otherwise</param>
/// <param name="romba">True if files should be output in Romba depot folders, false otherwise</param>
/// <param name="logger">Logger object for file and console output</param> /// <param name="logger">Logger object for file and console output</param>
public static bool InitTGZTest(List<string> inputs, string outdir, bool delete, Logger logger) public static bool InitTGZTest(List<string> inputs, string outdir, bool delete, bool romba, Logger logger)
{ {
// Get all individual files from the inputs // Get all individual files from the inputs
List<string> newinputs = new List<string>(); List<string> newinputs = new List<string>();
@@ -165,7 +174,7 @@ namespace SabreTools
} }
} }
TGZTest tgztest = new TGZTest(newinputs, outdir, delete, logger); TGZTest tgztest = new TGZTest(newinputs, outdir, delete, romba, logger);
return tgztest.Process(); return tgztest.Process();
} }
@@ -177,7 +186,7 @@ namespace SabreTools
{ {
foreach (string input in _inputs) foreach (string input in _inputs)
{ {
ArchiveTools.WriteTorrentGZ(input, _outdir, _logger); ArchiveTools.WriteTorrentGZ(input, _outdir, _romba, _logger);
if (_delete) if (_delete)
{ {
try try