diff --git a/RombaSharp/Partials/RombaSharp.Help.cs b/RombaSharp/Partials/RombaSharp.Help.cs
index dd1b8e25..5611963e 100644
--- a/RombaSharp/Partials/RombaSharp.Help.cs
+++ b/RombaSharp/Partials/RombaSharp.Help.cs
@@ -116,6 +116,23 @@ namespace RombaSharp
FeatureType.Flag,
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
Feature miss = new Feature(
"miss",
@@ -170,6 +187,7 @@ namespace RombaSharp
help.Add("Fixdat", fixdat);
help.Add("Lookup", lookup);
help.Add("Memstats", memstats);
+ help.Add("Merge", merge);
help.Add("Miss", miss);
help.Add("Purge Backup", purgeBackup);
help.Add("Purge Delete", purgeDelete);
diff --git a/RombaSharp/Partials/RombaSharp.Inits.cs b/RombaSharp/Partials/RombaSharp.Inits.cs
index 0a791867..7eb345ea 100644
--- a/RombaSharp/Partials/RombaSharp.Inits.cs
+++ b/RombaSharp/Partials/RombaSharp.Inits.cs
@@ -373,6 +373,17 @@ namespace RombaSharp
dbc.Dispose();
}
+ ///
+ /// Wrap merging an external depot into an existing one
+ ///
+ ///
+ ///
+ ///
+ private static void InitMerge(List inputs, string depotPath, bool onlyNeeded)
+ {
+ _logger.User("This feature is not yet implemented: merge");
+ }
+
///
/// Wrap creating a havefile and a missfile for each Dat
///
diff --git a/RombaSharp/RombaSharp.cs b/RombaSharp/RombaSharp.cs
index c4c89f04..287afbfa 100644
--- a/RombaSharp/RombaSharp.cs
+++ b/RombaSharp/RombaSharp.cs
@@ -86,6 +86,7 @@ namespace RombaSharp
fixdat = false,
lookup = false,
memstats = false,
+ merge = false,
miss = false,
progress = false,
purgeBackup = false,
@@ -98,7 +99,8 @@ namespace RombaSharp
onlyNeeded = false;
// User inputs
- string newdat ="",
+ string depotPath = "",
+ newdat = "",
outdat = "";
List inputs = new List();
@@ -150,6 +152,9 @@ namespace RombaSharp
case "memstats":
memstats = true;
break;
+ case "merge":
+ merge = true;
+ break;
case "miss":
miss = true;
break;
@@ -179,6 +184,11 @@ namespace RombaSharp
break;
// User inputs
+ case "-depot":
+ case "--depot":
+ i++;
+ depotPath = args[i];
+ break;
case "-new":
case "--new":
i++;
@@ -203,6 +213,11 @@ namespace RombaSharp
switch (split[0])
{
+ case "-depot":
+ case "--depot":
+ i++;
+ depotPath = split[1];
+ break;
case "-new":
case "--new":
newdat = split[1];
@@ -226,7 +241,7 @@ namespace RombaSharp
// If more than one switch is enabled, show the help screen
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");
_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 (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");
_help.OutputGenericHelp();
@@ -308,6 +323,12 @@ namespace RombaSharp
DisplayMemoryStats();
}
+ // Merges depots
+ else if (merge)
+ {
+ InitMerge(inputs, depotPath, onlyNeeded);
+ }
+
// For each specified DAT file it creates a miss file and a have file
else if (miss)
{