static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Load the XML Container xml = Container.getContainer(); Console.WriteLine("hello!"); if (xml.Config.host == null) { //load the configuration form Application.Run(new ConfigForm()); } else { Application.Run(new AppList()); } }
public static void getIPAs(String location) { DirectoryInfo di = new DirectoryInfo(location); Container container = Container.getContainer(); container.IPAItems = new List <IPAInfo>(); FileInfo[] files; //byte[] data; if (!di.Exists) { Console.WriteLine("Error: Directory not found?"); return; } try { files = di.GetFiles("*.ipa", SearchOption.TopDirectoryOnly); } catch (Exception e) { Console.WriteLine("Error: Exception occured, perhaps no permissions for directory?"); Console.WriteLine(e.ToString()); return; } foreach (FileInfo file in files) { try { Debug("IPA found: " + file.Name); using (ZipFile ipa = ZipFile.Read(file.FullName)) { foreach (ZipEntry e in ipa) { Debug("ZipEntry: " + e.FileName); if (e.FileName.Contains(".app/Info.plist")) { Debug("INFO.PLIST FOUND!!!!! " + GetTemporaryDirectory()); e.Extract(GetTemporaryDirectory(), ExtractExistingFileAction.OverwriteSilently); string plistLocation = Path.Combine(GetTemporaryDirectory(), e.FileName); //unpackDirectory + "/" + e.FileName; Debug("yo yo yo"); Dictionary <string, object> plist = (Dictionary <string, object>)Plist.readPlist(plistLocation); Debug("plist data: " + plist.ToString()); Debug("Bundle Name: " + plist["CFBundleExecutable"]); IPAInfo info = new IPAInfo(); info.AppBundle = (string)plist["CFBundleExecutable"]; if (plist.ContainsKey("CFBundleDisplayName")) { info.AppName = (string)plist["CFBundleDisplayName"]; } else { info.AppName = (string)plist["CFBundleName"]; } info.AppVersion = (string)plist["CFBundleVersion"]; info.Location = file.FullName; info.BinaryLocation = e.FileName.Replace("Info.plist", "") + info.AppBundle; container.IPAItems.Add(info); } } } } catch (Exception ex) { Debug("Error: could not analyze " + file.Name); Debug("Error: " + ex.ToString()); } } /*using (StreamWriter writer = new StreamWriter("Brake.xml")) { * XmlSerializer serializer = new XmlSerializer (typeof(Container)); * serializer.Serialize (writer, container); * Debug ("serializing data"); * }*/ container.SaveXML(); DeleteDirectory(GetTemporaryDirectory()); }