public void CreateConfig(CreateFileSettings settings) { if (!settings.OverwriteIfExists && File.Exists(config.Path)) { return; } Log.Info("Creating new permission file ({@settings})", settings); string toml = null; using (var fs = Util.GetEmbeddedFile("TS3AudioBot.Rights.DefaultRights.toml")) using (var reader = new StreamReader(fs, Tools.Utf8Encoder)) { toml = reader.ReadToEnd(); } using (var fs = File.Open(config.Path, FileMode.Create, FileAccess.Write, FileShare.None)) using (var writer = new StreamWriter(fs, Tools.Utf8Encoder)) { string replaceAdminUids = settings.AdminUids != null ? string.Join(" ,", settings.AdminUids.Select(x => $"\"{x}\"")) : string.Empty; toml = toml.Replace("\"_admin_uid_\"", replaceAdminUids); writer.Write(toml); } }
public void CreateConfigIfNotExists(bool interactive = false) { if (File.Exists(config.Path)) { return; } Log.Warn("No permission file found."); var settings = new CreateFileSettings { OverwriteIfExists = false, }; if (interactive) { Console.WriteLine("Do you want to set up an admin in the default permission file template? [Y/n]"); if (Interactive.UserAgree(defaultTo: true)) { var adminUid = Interactive.LoopAction("Please enter an admin uid", uid => { if (!Uid.IsValid(uid)) { Console.WriteLine("The uid seems to be invalid, continue anyway? [y/N]"); return(Interactive.UserAgree(defaultTo: false)); } return(true); }); if (adminUid is null) { return; } settings.AdminUids = new[] { adminUid }; } } CreateConfig(settings); }