Esempio n. 1
0
        protected void ConvertChangelogToHtml(Settings settings, ReleaseHistory releaseHistory)
        {
            Log($"Writing HTML changelog to {settings.HtmlChangeLogFileName}");

            string changelogBody;

            using (var reader = new StreamReader(settings.MarkdownChangeLogFileName))
                using (var writer = new StringWriter())
                {
                    CommonMark.CommonMarkConverter.Convert(reader, writer);
                    changelogBody = writer.ToString();
                }

            var html = $@"<html>
<head>
<title>{settings.ProductName} {releaseHistory.CurrentVersion}</title>
<link rel='stylesheet' href='http://fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic' />
<link rel='stylesheet' href='http://cdn.rawgit.com/necolas/normalize.css/master/normalize.css' />
<link rel='stylesheet' href='http://cdn.rawgit.com/milligram/milligram/master/dist/milligram.min.css' />
</head>
<body>
<!-- DO NOT EDIT THIS FILE! It is automatically generated and your changes will be lost when the next release is made -->
<div class='container'>
{changelogBody}
</div>
</body>
</html>";

            File.WriteAllText(settings.HtmlChangeLogFileName, html);
        }
Esempio n. 2
0
        protected void WriteChangelog(Settings settings, ReleaseHistory releaseHistory)
        {
            Log($"Writing Markdown changelog to {settings.MarkdownChangeLogFileName}");

            var changeLog = GenerateChangelog(settings, releaseHistory);

            File.WriteAllText(settings.MarkdownChangeLogFileName, changeLog);
        }
Esempio n. 3
0
        protected ReleaseHistory ReadReleaseHistory(Settings settings)
        {
            if (!File.Exists(settings.ReleaseHistoryFileName))
            {
                return(ReleaseHistory.Default(settings.ProductName));
            }

            var releaseHistoryJson = File.ReadAllText(settings.ReleaseHistoryFileName);
            var releaseHistory     = JsonConvert.DeserializeObject <ReleaseHistory>(releaseHistoryJson) ?? ReleaseHistory.Default(settings.ProductName);

            return(releaseHistory.WithProductName(settings.ProductName));
        }
Esempio n. 4
0
        protected void WriteReleaseHistory(Settings settings, ReleaseHistory releaseHistory)
        {
            Log($"Writing JSON release history to {settings.ReleaseHistoryFileName}");

            var releaseHistoryJson = JsonConvert.SerializeObject(releaseHistory, new JsonSerializerSettings
            {
                ContractResolver = new DefaultContractResolver
                {
                    NamingStrategy = new CamelCaseNamingStrategy()
                },
                Formatting = Formatting.Indented
            });

            File.WriteAllText(settings.ReleaseHistoryFileName, releaseHistoryJson);
        }
Esempio n. 5
0
        protected string GenerateChangelog(Settings settings, ReleaseHistory releaseHistory)
        {
            var format = $@"# {{{{ProductName}}}} {{{{CurrentVersion}}}}{{{{#newline}}}}
{{{{#newline}}}}
{{{{#each Releases}}}}{{{{#newline}}}}
## {{{{Version}}}}{{{{#newline}}}}
{{{{#each Changes}}}}{{{{#newline}}}}
* **{{{{TypeDescription}}}}**: {{{{Description}}}}
{{{{/each}}}}{{{{#newline}}}}
{{{{/each}}}}";

            var compiler  = new FormatCompiler();
            var generator = compiler.Compile(format);

            return(generator.Render(releaseHistory));
        }
Esempio n. 6
0
 protected void WriteVersionFile(Settings settings, ReleaseHistory releaseHistory)
 {
     File.WriteAllText(settings.VersionFileName, releaseHistory.CurrentVersion.HasValue ? releaseHistory.CurrentVersion.Value.ToString() : null);
 }