Example #1
0
        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);
                }
        }
Example #2
0
        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);
        }