Beispiel #1
0
        /// <summary>
        /// Write config.json
        /// </summary>
        /// <param name="outputPath">Path of config.json</param>
        protected virtual void WriteConfigObject(string outputPath)
        {
            var pluginDirectories = new List <string>();
            var plugins           = new List <string>();
            var pluginRoot        = $"../{Parameters.ProjectName}.Plugins";

            if (string.IsNullOrEmpty(Parameters.UseDefaultPlugins))
            {
                // Not use default plugins
                pluginDirectories.Add(pluginRoot);
                plugins.Add(Parameters.ProjectName);
            }
            else
            {
                // Use default plugins
                var collection = PluginCollection.FromFile(Parameters.UseDefaultPlugins);
                pluginDirectories.Add(pluginRoot);
                pluginDirectories.Add(PathUtils.MakeRelativePath(
                                          Path.GetDirectoryName(Path.GetDirectoryName(outputPath)),
                                          Path.GetDirectoryName(Parameters.UseDefaultPlugins)));
                plugins.AddRange(collection.PrependPlugins);
                plugins.Add(Parameters.ProjectName);
                plugins.AddRange(collection.AppendPlugins);
            }
            var json = JsonConvert.SerializeObject(new {
                ORM               = Parameters.ORM,
                Database          = Parameters.Database,
                ConnectionString  = Parameters.ConnectionString,
                PluginDirectories = pluginDirectories,
                Plugins           = plugins
            }, Formatting.Indented);

            Directory.CreateDirectory(Path.GetDirectoryName(outputPath));
            File.WriteAllText(outputPath, json, Encoding.UTF8);
        }