From 877b09831aec92c9eda2f9884c56c2a2a67de09a Mon Sep 17 00:00:00 2001 From: kawaiizenbo <48113593+kawaiizenbo@users.noreply.github.com> Date: Sun, 3 Oct 2021 10:42:49 -0700 Subject: [PATCH] c --- IPASorter/Program.cs | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/IPASorter/Program.cs b/IPASorter/Program.cs index 289f549..a4b2e97 100644 --- a/IPASorter/Program.cs +++ b/IPASorter/Program.cs @@ -25,13 +25,17 @@ namespace IPASorter } // parse filepath if given - string argsFilePath = args.Length != 0 ? args[0] : "./"; + string argsFilePath = args.Length != 0 ? args[0] : ".\\"; if (!argsFilePath.EndsWith("/") || !argsFilePath.EndsWith("\\")) argsFilePath += "/"; // run steps FileScanner(argsFilePath); // MD5Eliminator(); obsolete InfoPlistRenamer(); + if(args.Length > 1 && args[1] == "-si") + { + SortByiOSCompatibility(); + } Console.WriteLine("complete :)"); } @@ -57,29 +61,36 @@ namespace IPASorter Directory.CreateDirectory(".\\sortertemp"); foreach (IPAFile i in files) { + Console.WriteLine($"fixing name of {i.fileName}"); + // extract ipa Directory.CreateDirectory($".\\sortertemp\\{i.fileName}"); ZipFile.ExtractToDirectory(i.path, $".\\sortertemp\\{i.fileName}"); - string plistpath = $".\\sortertemp\\{i.fileName}\\Payload\\{Directory.GetDirectories($".\\sortertemp\\{i.fileName}\\Payload\\")[0].Split('\\')[Directory.GetDirectories($".\\sortertemp\\{i.fileName}\\Payload\\")[0].Split('\\').Length - 1]}\\Info.plist"; - Dictionary plist = (Dictionary)Plist.readPlist(plistpath); + string appPath = $".\\sortertemp\\{i.fileName}\\Payload\\{Directory.GetDirectories($".\\sortertemp\\{i.fileName}\\Payload\\")[0].Split('\\')[Directory.GetDirectories($".\\sortertemp\\{i.fileName}\\Payload\\")[0].Split('\\').Length - 1]}"; + + // parse plist + Dictionary plist = (Dictionary)Plist.readPlist(appPath + "\\Info.plist"); Directory.Delete($".\\sortertemp\\{i.fileName}", true); i.CFBundleIdentifier = plist["CFBundleIdentifier"].ToString(); i.CFBundleVersion = plist["CFBundleVersion"].ToString(); i.MinimumOSVersion = plist["MinimumOSVersion"].ToString(); - File.Move(i.path, i.path.Replace(i.fileName, $"{plist["CFBundleIdentifier"]}-{plist["CFBundleVersion"]}-(iOS_{plist["MinimumOSVersion"]}).ipa")); - i.path = i.path.Replace(i.fileName, $"{plist["CFBundleIdentifier"]}-{plist["CFBundleVersion"]}-(iOS_{plist["MinimumOSVersion"]}).ipa"); - i.fileName = $"{plist["CFBundleIdentifier"]}-{plist["CFBundleVersion"]}-(iOS_{plist["MinimumOSVersion"]}).ipa"; + + // rename file + string newFileName = $"{plist["CFBundleIdentifier"]}-{plist["CFBundleVersion"]}-(iOS_{plist["MinimumOSVersion"]})-{i.md5sum}.ipa"; + File.Move(i.path, i.path.Replace(i.fileName, newFileName), true); + i.path = i.path.Replace(i.fileName, newFileName); + i.fileName = newFileName; } Directory.Delete(".\\sortertemp", true); } - // step 3??? - static void Sort() + // optional step 3 + static void SortByiOSCompatibility() { } - // keeping this around just in case + // othet stuff static string CalculateMD5(string fileName) { using (var md5 = MD5.Create())