예제 #1
0
        public static void InitNewConfig(InitOptions options)
        {
            if (File.Exists(PathUtils.ConfigPath))
            {
                Logger.Log(LogCategory.Warning, "This project already has a config file");
            }

            Logger.Log(LogCategory.Info, $"Writing new config file to {PathUtils.ConfigPath} ...");
            var newConfigText = SerialiseConfig(ConfigDefaults.GetMinimalUserConfig());

            try
            {
                using (var file = File.Open(PathUtils.ConfigPath, FileMode.CreateNew))
                {
                    var writer = new StreamWriter(file);
                    writer.Write(newConfigText);
                    writer.Flush();
                }
            }
            catch (Exception e)
            {
                throw new Exception("Failed to write new config file: " + e.Message, e);
            }

            var defaultConfigInstance = ConfigDefaults.GetDefaultConfig();

            if (!Directory.Exists(defaultConfigInstance.Build.OutputDirectory))
            {
                Logger.Log(LogCategory.Info, $"Creating your build output folder at {defaultConfigInstance.Build.OutputDirectory} ...");
            }
        }
예제 #2
0
        static ConfigModel LoadConfig()
        {
            var config = ConfigDefaults.GetDefaultConfig();

            JsonConvert.PopulateObject(File.ReadAllText(PathUtils.ConfigPath), config, new JsonSerializerSettings {
                ObjectCreationHandling = ObjectCreationHandling.Reuse
            });

            return(config);
        }