[RombaSharp] Create skeleton for merge feature

This commit is contained in:
Matt Nadareski
2017-02-02 21:57:34 -08:00
parent ba12fca8a9
commit 62a3c5dcff
3 changed files with 53 additions and 3 deletions

View File

@@ -116,6 +116,23 @@ namespace RombaSharp
FeatureType.Flag, FeatureType.Flag,
null); null);
// Create the Merge feature
Feature merge = new Feature(
"merge",
"Merges a depot into the existing one",
FeatureType.Flag,
null);
merge.AddFeature("depot", new Feature(
"-depot",
"Depot path to merge into",
FeatureType.String,
null));
merge.AddFeature("only-needed", new Feature(
"-only-needed",
"Only merge files in if needed",
FeatureType.Flag,
null));
// Create the Miss feature // Create the Miss feature
Feature miss = new Feature( Feature miss = new Feature(
"miss", "miss",
@@ -170,6 +187,7 @@ namespace RombaSharp
help.Add("Fixdat", fixdat); help.Add("Fixdat", fixdat);
help.Add("Lookup", lookup); help.Add("Lookup", lookup);
help.Add("Memstats", memstats); help.Add("Memstats", memstats);
help.Add("Merge", merge);
help.Add("Miss", miss); help.Add("Miss", miss);
help.Add("Purge Backup", purgeBackup); help.Add("Purge Backup", purgeBackup);
help.Add("Purge Delete", purgeDelete); help.Add("Purge Delete", purgeDelete);

View File

@@ -373,6 +373,17 @@ namespace RombaSharp
dbc.Dispose(); dbc.Dispose();
} }
/// <summary>
/// Wrap merging an external depot into an existing one
/// </summary>
/// <param name="inputs"></param>
/// <param name="depotPath"></param>
/// <param name="onlyNeeded"></param>
private static void InitMerge(List<string> inputs, string depotPath, bool onlyNeeded)
{
_logger.User("This feature is not yet implemented: merge");
}
/// <summary> /// <summary>
/// Wrap creating a havefile and a missfile for each Dat /// Wrap creating a havefile and a missfile for each Dat
/// </summary> /// </summary>

View File

@@ -86,6 +86,7 @@ namespace RombaSharp
fixdat = false, fixdat = false,
lookup = false, lookup = false,
memstats = false, memstats = false,
merge = false,
miss = false, miss = false,
progress = false, progress = false,
purgeBackup = false, purgeBackup = false,
@@ -98,7 +99,8 @@ namespace RombaSharp
onlyNeeded = false; onlyNeeded = false;
// User inputs // User inputs
string newdat ="", string depotPath = "",
newdat = "",
outdat = ""; outdat = "";
List<string> inputs = new List<string>(); List<string> inputs = new List<string>();
@@ -150,6 +152,9 @@ namespace RombaSharp
case "memstats": case "memstats":
memstats = true; memstats = true;
break; break;
case "merge":
merge = true;
break;
case "miss": case "miss":
miss = true; miss = true;
break; break;
@@ -179,6 +184,11 @@ namespace RombaSharp
break; break;
// User inputs // User inputs
case "-depot":
case "--depot":
i++;
depotPath = args[i];
break;
case "-new": case "-new":
case "--new": case "--new":
i++; i++;
@@ -203,6 +213,11 @@ namespace RombaSharp
switch (split[0]) switch (split[0])
{ {
case "-depot":
case "--depot":
i++;
depotPath = split[1];
break;
case "-new": case "-new":
case "--new": case "--new":
newdat = split[1]; newdat = split[1];
@@ -226,7 +241,7 @@ namespace RombaSharp
// If more than one switch is enabled, show the help screen // If more than one switch is enabled, show the help screen
if (!(archive ^ build ^ dbstats ^ depotRescan ^ diffdat ^ dir2dat ^ export ^ fixdat ^ lookup ^ if (!(archive ^ build ^ dbstats ^ depotRescan ^ diffdat ^ dir2dat ^ export ^ fixdat ^ lookup ^
memstats ^ miss ^ progress ^ purgeBackup ^ purgeDelete ^ refreshDats ^ shutdown)) memstats ^ merge ^ miss ^ progress ^ purgeBackup ^ purgeDelete ^ refreshDats ^ shutdown))
{ {
_logger.Error("Only one feature switch is allowed at a time"); _logger.Error("Only one feature switch is allowed at a time");
_help.OutputGenericHelp(); _help.OutputGenericHelp();
@@ -235,7 +250,7 @@ namespace RombaSharp
} }
// If a switch that requires a filename is set and no file is, show the help screen // If a switch that requires a filename is set and no file is, show the help screen
if (inputs.Count == 0 && (archive || build || depotRescan || dir2dat || fixdat || lookup || miss)) if (inputs.Count == 0 && (archive || build || depotRescan || dir2dat || fixdat || lookup || merge || miss))
{ {
_logger.Error("This feature requires at least one input"); _logger.Error("This feature requires at least one input");
_help.OutputGenericHelp(); _help.OutputGenericHelp();
@@ -308,6 +323,12 @@ namespace RombaSharp
DisplayMemoryStats(); DisplayMemoryStats();
} }
// Merges depots
else if (merge)
{
InitMerge(inputs, depotPath, onlyNeeded);
}
// For each specified DAT file it creates a miss file and a have file // For each specified DAT file it creates a miss file and a have file
else if (miss) else if (miss)
{ {