fixed path separators
This commit is contained in:
parent
f9f47bbd4d
commit
0c9f958cc5
@ -37,7 +37,6 @@ static class ParadoxModMerger
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log("c", "args: ");
|
|
||||||
string srcdir = "";
|
string srcdir = "";
|
||||||
string srcdir2 = "";
|
string srcdir2 = "";
|
||||||
string outdir = "";
|
string outdir = "";
|
||||||
@ -45,40 +44,32 @@ static class ParadoxModMerger
|
|||||||
// определение всех аргументов
|
// определение всех аргументов
|
||||||
for (sbyte i = 0; i < args.Length; i++)
|
for (sbyte i = 0; i < args.Length; i++)
|
||||||
{
|
{
|
||||||
Log("g", $" {args[i]}");
|
|
||||||
switch (args[i])
|
switch (args[i])
|
||||||
{
|
{
|
||||||
case "-clear":
|
case "-clear":
|
||||||
srcdir = args[++i].Replace("\"", "");
|
srcdir = args[++i].Replace("\"", "").ИсправитьРазд();
|
||||||
Log("g", $" {args[i]}");
|
|
||||||
mode = 0;
|
mode = 0;
|
||||||
break;
|
break;
|
||||||
case "-merge":
|
case "-merge":
|
||||||
srcdir = args[++i].Replace("\"", "");
|
srcdir = args[++i].Replace("\"", "").ИсправитьРазд();
|
||||||
Log("g", $" {args[i]}");
|
|
||||||
mode = 1;
|
mode = 1;
|
||||||
break;
|
break;
|
||||||
case "-diff":
|
case "-diff":
|
||||||
srcdir = args[++i].Replace("\"", "");
|
srcdir = args[++i].Replace("\"", "").ИсправитьРазд();
|
||||||
Log("g", $" {args[i]}");
|
srcdir2 = args[++i].Replace("\"", "").ИсправитьРазд();
|
||||||
srcdir2 = args[++i].Replace("\"", "");
|
|
||||||
Log("g", $" {args[i]}");
|
|
||||||
mode = 2;
|
mode = 2;
|
||||||
break;
|
break;
|
||||||
case "-merge-single":
|
case "-merge-single":
|
||||||
srcdir = args[++i].Replace("\"", "");
|
srcdir = args[++i].Replace("\"", "").ИсправитьРазд();
|
||||||
Log("g", $" {args[i]}");
|
|
||||||
mode = 3;
|
mode = 3;
|
||||||
break;
|
break;
|
||||||
case "-out":
|
case "-out":
|
||||||
outdir = args[++i].Replace("\"", "");
|
outdir = args[++i].Replace("\"", "").ИсправитьРазд();
|
||||||
Log("g", $" {args[i]}");
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Exception($"invalid argument: <{args[i]}>");
|
throw new Exception($"invalid argument: <{args[i]}>");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Log("");
|
|
||||||
|
|
||||||
var conflicts = new List<string>();
|
var conflicts = new List<string>();
|
||||||
string[] moddirs = Directory.GetDirectories(srcdir);
|
string[] moddirs = Directory.GetDirectories(srcdir);
|
||||||
@ -96,23 +87,23 @@ static class ParadoxModMerger
|
|||||||
var pr = new Process();
|
var pr = new Process();
|
||||||
pr.StartInfo.CreateNoWindow = true;
|
pr.StartInfo.CreateNoWindow = true;
|
||||||
pr.StartInfo.UseShellExecute = false;
|
pr.StartInfo.UseShellExecute = false;
|
||||||
pr.StartInfo.FileName = "7z\\7z.exe";
|
pr.StartInfo.FileName = "7z{Путь.Разд}7z.exe";
|
||||||
pr.StartInfo.Arguments = $"x -y -o_TEMP \"{modarch}\"";
|
pr.StartInfo.Arguments = $"x -y -o_TEMP \"{modarch}\"";
|
||||||
pr.Start();
|
pr.Start();
|
||||||
pr.WaitForExit();
|
pr.WaitForExit();
|
||||||
moddirs[i] = "_TEMP";
|
moddirs[i] = "_TEMP";
|
||||||
Log("g", "\tfiles extracted");
|
Log("g", "\tfiles extracted");
|
||||||
}
|
}
|
||||||
string modname = File.ReadAllText($"{moddirs[i]}\\descriptor.mod");
|
string modname = File.ReadAllText($"{moddirs[i]}{Путь.Разд}descriptor.mod");
|
||||||
modname = modname.Remove(0, modname.IndexOf("name=\"") + 6);
|
modname = modname.Remove(0, modname.IndexOf("name=\"") + 6);
|
||||||
modname = modname.Remove(modname.IndexOf("\""))
|
modname = modname.Remove(modname.IndexOf("\""))
|
||||||
.Replace("\\", "").Replace(":", "").Replace("?", "").Replace("\"", "").Replace("/", "")
|
.Replace($"{Путь.Разд}", "").Replace(":", "").Replace("?", "").Replace("\"", "").Replace("/", "")
|
||||||
.Replace("\'", "").Replace("|", "").Replace("<", "").Replace(">", "").Replace("*", "");
|
.Replace("\'", "").Replace("|", "").Replace("<", "").Replace(">", "").Replace("*", "");
|
||||||
Log("b", $"[{i + 1}/{moddirs.Length}] copying mod ", "c", $"{modname}");
|
Log("b", $"[{i + 1}/{moddirs.Length}] copying mod ", "c", $"{modname}");
|
||||||
string[] subdirs = Directory.GetDirectories(moddirs[i]);
|
string[] subdirs = Directory.GetDirectories(moddirs[i]);
|
||||||
for (sbyte n = 0; n < subdirs.Length; n++)
|
for (sbyte n = 0; n < subdirs.Length; n++)
|
||||||
{
|
{
|
||||||
subdirs[n] = subdirs[n].Remove(0, subdirs[n].LastIndexOf('\\') + 1);
|
subdirs[n] = subdirs[n].Remove(0, subdirs[n].LastIndexOf(Путь.Разд) + 1);
|
||||||
switch (subdirs[n])
|
switch (subdirs[n])
|
||||||
{
|
{
|
||||||
// stellaris
|
// stellaris
|
||||||
@ -131,7 +122,8 @@ static class ParadoxModMerger
|
|||||||
// hoi4
|
// hoi4
|
||||||
case "history":
|
case "history":
|
||||||
case "portraits":
|
case "portraits":
|
||||||
Directory.Copy($"{moddirs[i]}\\{subdirs[n]}", $"{outdir}\\{modname}\\{subdirs[n]}", out List<string> _conflicts, true);
|
Directory.Copy($"{moddirs[i]}{Путь.Разд}{{subdirs[n]}}",
|
||||||
|
$"{outdir}{Путь.Разд}{{modname}}{Путь.Разд}{{subdirs[n]}}", out List<string> _conflicts, true);
|
||||||
conflicts.AddRange(_conflicts);
|
conflicts.AddRange(_conflicts);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -177,7 +169,7 @@ static class ParadoxModMerger
|
|||||||
void AddMod(string mod)
|
void AddMod(string mod)
|
||||||
{
|
{
|
||||||
mod = mod.Remove(0, 1);
|
mod = mod.Remove(0, 1);
|
||||||
mod = mod.Remove(mod.IndexOf('\\'));
|
mod = mod.Remove(mod.IndexOf(Путь.Разд));
|
||||||
if (!mods.Contains(mod)) mods.Add(mod);
|
if (!mods.Contains(mod)) mods.Add(mod);
|
||||||
}
|
}
|
||||||
// вывод результата
|
// вывод результата
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user