static bool FindProgramUnix(string name, string description, out string command) { if (m_Cache.TryGetValue(name, out command)) { return(true); } IniReader reader = IniReader.FromLocation(RootLocation.LocalUserConfig); command = reader.ReadSetting("Software", name); if (command != null && File.Exists(command)) { if (!m_Arguments.IsOptionPresent("reset-toolchain")) { m_Cache[name] = command; return(true); } } SystemConsole.WriteLine("\n<yellow>Warning:<default> Build tool <yellow>{0}<default> not set, searching...", description); ProcessResult result = ProcessRunner.Run("whereis", name); if (result.ExitCode != 0) { SystemConsole.WriteLine("<red>Cannot find program {0} with whereis!", name); SystemConsole.WriteLine(result.Combined); return(false); } command = result.StdOut.GetString(-1, ": ", " "); SystemConsole.Write("Selected <cyan>{0}<default> for <cyan>{1}<default>...", command, description); result = ProcessRunner.Run(command, ""); if (result.StartException != null) { SystemConsole.WriteLine(" <red>error"); SystemConsole.WriteLine(result.Combined); return(false); } SystemConsole.WriteLine(" <green>ok"); m_Cache[name] = command; IniWriter writer = new IniWriter(reader); writer.WriteSetting("Software", name, command); writer.Save(); return(true); }
public static void Save(IEnumerable <Category> categories, string file) { IniWriter writer = new IniWriter(); foreach (Category category in categories) { for (int i = 0; i < category.Count; i++) { writer.AddValue(category[i].ToFormat(), category.ToFormat()); } } string tempFile = Path.GetTempFileName(); writer.Save(tempFile); File.Copy(tempFile, file, true); File.Delete(tempFile); }
/// <summary> /// Persisis a Template object into a file. /// </summary> /// <param name="template">The template object to save.</param> /// <param name="file">The file to save the data into.</param> public static void Save(Template template, string file) { IniWriter writer = new IniWriter(); foreach (Category category in template) { string strCategory = CategoryToFormat(category); foreach (var item in category) { writer.AddValue(CategoryItemToFormat(item), strCategory); } } string tempFile = Path.GetTempFileName(); writer.Save(tempFile); File.Copy(tempFile, file, true); File.Delete(tempFile); }
/// <summary>Writes the artist ini.</summary> /// <param name="folder">The folder.</param> /// <param name="artist">The artist.</param> /// <exception cref="ArgumentNullException">MusicBrainzArtistGuid</exception> public void WriteArtistIni(MDBFolder folder, MDBArtist artist) { if (artist.MusicBrainzArtistGuid == null) { throw new ArgumentNullException("MusicBrainzArtistGuid"); } string artistIniFile = folder.GetFullPath(this, "artist.ini"); FileSystem.TouchFile(artistIniFile); var ini = IniReader.FromFile(artistIniFile); var writer = new IniWriter(ini); writer.WriteSetting("Artist", "Guid", artist.MusicBrainzArtistGuid.ToString()); var artists = new Set <string>(ini.ReadSection("Artists")); artists.Include(artist.Name); writer.WriteSection("Artists", artists); writer.Save(); }
public void IniReaderWriterTest() { var temp = Path.GetTempFileName(); Console.WriteLine($"{nameof(IniReaderWriterTest)}.cs: info TI0002: TestFile {temp}"); foreach (var culture in allCultures) { Console.WriteLine($"{nameof(IniReaderWriterTest)}.cs: info TI0002: Test {culture}"); if (!(culture.Calendar is GregorianCalendar)) { Console.WriteLine($"- Skipping calendar {culture.Calendar}"); continue; } var settings = new SettingsStructFields[10]; var properties = IniProperties.Default; properties.Culture = culture; var writer = new IniWriter(temp, properties); { var setting = SettingsStructFields.Random(null); settings[0] = setting; writer.WriteFields($"Section 0", setting); } for (var i = 1; i < settings.Length; i++) { var setting = SettingsStructFields.Random(culture); settings[i] = setting; writer.WriteFields($"Section {i}", setting); } writer.Save(temp); TestReader((IniReader)writer.ToReader(), settings); TestReader(IniReader.FromFile(temp, properties), settings); } }
private void CoreUI_FormClosing(object sender, FormClosingEventArgs e) { Globals.AttackOn = false; Globals.AttackMode = false; Globals.Terminate = true; if (RoomsPanel.Rooms.Count > 0) { RegistryUtil.Save(); IniWriter.Save(); ConfigSerializer.WriteFile("config.xml", Settings); } // clean up notifyicon if (mNotifyIcon != null) { mNotifyIcon.Visible = false; mNotifyIcon.Dispose(); mNotifyIcon = null; } Application.Exit(); Process.GetCurrentProcess().Kill(); }
/// <summary> /// Attacks with accounts /// </summary> private static void Run() { // save settings RegistryUtil.Save(); IniWriter.Save(); ConfigSerializer.WriteFile("config.xml", CoreUI.Instance.Settings); CoreUI.Instance.ToggleNotifyIcon(true); lock (mAccounts) { foreach (Account a in mAccounts) { CoreUI.Instance.LogPanel.Log("Refreshing " + a.Name + "'s position..."); if (!a.Mover.RefreshRoom()) { CoreUI.Instance.ToggleNotifyIcon(false); return; } // no point in moving if we don't have rage if (a.Mover.Account.Rage > -1 && a.Mover.Account.Rage < Math.Max(1, CoreUI.Instance.Settings.StopBelowRage)) { // go to next account CoreUI.Instance.LogPanel.Log(string.Format("Not attacking on {0}, reached rage limit", a.Name)); continue; } a.Mover.ReturnToStartHandler.SetOriginal(); CoreUI.Instance.AccountsPanel.Engine.SetMain(a); switch (mType) { case AttackingType.CurrentArea: CoreUI.Instance.DoAttackArea(); break; case AttackingType.MultiArea: CoreUI.Instance.DoAttackMultiAreas(mAreas); break; case AttackingType.Mobs: CoreUI.Instance.DoAttackMobs(mMobs); break; case AttackingType.Rooms: CoreUI.Instance.DoAttackRooms(mRooms); break; } // update account state a.RefreshState(); // Finished CoreUI.Instance.LogPanel.Log(a.Name + " attack coverage complete"); if (!Globals.AttackMode) { break; } } } CoreUI.Instance.ToggleNotifyIcon(false); // submit any newfound mobs to pathfinding database if (Pathfinding.MobCollector.Count > 0) { CoreUI.Instance.LogPanel.Log("Submitting " + Pathfinding.MobCollector.Count + " new mobs"); Pathfinding.MobCollector.Submit(); } }