Skip to content

Commit

Permalink
feat(main): write proper header
Browse files Browse the repository at this point in the history
clog does now support --setversion and
--subtitle parameters.

E.g. --setversion=1.12.0 --subtitle=crazy-dog
  • Loading branch information
cburgdorf committed Sep 14, 2014
1 parent 4f7e1ab commit c667e1e
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 3 deletions.
26 changes: 25 additions & 1 deletion src/log_writer.rs
@@ -1,5 +1,6 @@
use std::collections::hashmap::HashMap;
use std::io::Writer;
use time::now_utc;
use common::{ LogEntry };

pub struct LogWriter<'a> {
Expand All @@ -8,7 +9,9 @@ pub struct LogWriter<'a> {
}

pub struct LogWriterOptions<'a> {
pub repository_link: String
pub repository_link: String,
pub version: String,
pub subtitle: String
}

impl<'a> LogWriter<'a> {
Expand All @@ -23,6 +26,27 @@ impl<'a> LogWriter<'a> {
}
}

pub fn write_header (&mut self) {

let subtitle = match self.options.subtitle.len() {
0 => self.options.subtitle.clone(),
_ => format!(" {}", self.options.subtitle)
};

let version_text = format!("## {}{}", self.options.version, subtitle);

fn get_date () -> String {
now_utc().strftime("%Y-%m-%d")
}

if self.options.repository_link.len() > 0 {
self.writer.write(format!("{} ({})\n\n", version_text, get_date()).as_bytes());
}
else {
self.writer.write(format!("<a name=\"{}\"</a>\n{} ({})\n\n", self.options.version, version_text, get_date()).as_bytes());
}
}

pub fn write_section (&mut self, title: &str, section: &HashMap<String, Vec<LogEntry>>) {

if section.len() == 0 {
Expand Down
8 changes: 6 additions & 2 deletions src/main.rs
Expand Up @@ -9,6 +9,7 @@ extern crate regex_macros;
extern crate serialize;
#[phase(plugin)] extern crate docopt_macros;
extern crate docopt;
extern crate time;

use git::{ LogReaderConfig, get_commits };
use log_writer::{ LogWriter, LogWriterOptions };
Expand All @@ -24,7 +25,7 @@ mod section_builder;
docopt!(Args, "clog
Usage:
clog [--repository=<link>]
clog [--repository=<link> --setversion=<version> --subtitle=<subtitle>]
Options:
-h --help Show this screen.
Expand All @@ -46,9 +47,12 @@ fn main () {
let sections = build_sections(commits.clone());
let mut file = File::open_mode(&Path::new("changelog.md"), Open, Write).ok().unwrap();
let mut writer = LogWriter::new(&mut file, LogWriterOptions {
repository_link: args.flag_repository
repository_link: args.flag_repository,
version: args.flag_setversion,
subtitle: args.flag_subtitle
});

writer.write_header();
writer.write_section("Bug Fixes", &sections.fixes);
writer.write_section("Features", &sections.features);
//println!("{}", commits);
Expand Down

0 comments on commit c667e1e

Please sign in to comment.