diff --git a/SabreTools.Helper/Tools/ArchiveTools.cs b/SabreTools.Helper/Tools/ArchiveTools.cs
index b4c39d71..3f606665 100644
--- a/SabreTools.Helper/Tools/ArchiveTools.cs
+++ b/SabreTools.Helper/Tools/ArchiveTools.cs
@@ -596,9 +596,10 @@ namespace SabreTools.Helper
///
/// File to write from
/// Directory to write archive to
+ /// True if files should be output in Romba depot folders, false otherwise
/// Logger object for file and console output
/// True if the write was a success, false otherwise
- 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
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;
}
diff --git a/TGZTest/TGZTest.cs b/TGZTest/TGZTest.cs
index 18454642..c99a36da 100644
--- a/TGZTest/TGZTest.cs
+++ b/TGZTest/TGZTest.cs
@@ -11,6 +11,7 @@ namespace SabreTools
private List _inputs;
private string _outdir;
private bool _delete;
+ private bool _romba;
private Logger _logger;
///
@@ -19,12 +20,14 @@ namespace SabreTools
/// List of all inputted files and folders
/// Output directory (empty for default directory)
/// True if input files should be deleted, false otherwise
+ /// True if files should be output in Romba depot folders, false otherwise
/// Logger object for file and console output
- public TGZTest(List inputs, string outdir, bool delete, Logger logger)
+ public TGZTest(List inputs, string outdir, bool delete, bool romba, Logger logger)
{
_inputs = inputs;
_outdir = (String.IsNullOrEmpty(outdir) ? "tgz" : outdir);
_delete = delete;
+ _romba = romba;
_logger = logger;
}
@@ -65,6 +68,7 @@ namespace SabreTools
// Set all default values
bool help = false,
delete = false,
+ romba = false,
tgz = true;
string outdir = "";
List inputs = new List();
@@ -85,6 +89,10 @@ namespace SabreTools
case "--delete":
delete = true;
break;
+ case "-r":
+ case "--romba":
+ romba = true;
+ break;
default:
if (temparg.StartsWith("-out=") || temparg.StartsWith("--out="))
{
@@ -126,7 +134,7 @@ namespace SabreTools
// If we are doing a simple sort
if (tgz)
{
- InitTGZTest(inputs, outdir, delete, logger);
+ InitTGZTest(inputs, outdir, delete, romba, logger);
}
// If nothing is set, show the help
@@ -145,8 +153,9 @@ namespace SabreTools
/// List of all inputted files and folders
/// Output directory (empty for default directory)
/// True if input files should be deleted, false otherwise
+ /// True if files should be output in Romba depot folders, false otherwise
/// Logger object for file and console output
- public static bool InitTGZTest(List inputs, string outdir, bool delete, Logger logger)
+ public static bool InitTGZTest(List inputs, string outdir, bool delete, bool romba, Logger logger)
{
// Get all individual files from the inputs
List newinputs = new List();
@@ -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();
}
@@ -177,7 +186,7 @@ namespace SabreTools
{
foreach (string input in _inputs)
{
- ArchiveTools.WriteTorrentGZ(input, _outdir, _logger);
+ ArchiveTools.WriteTorrentGZ(input, _outdir, _romba, _logger);
if (_delete)
{
try