bulk 0.4.6

A simple tool for making deb packages, repositories, and update version numbers.
use std::io::{self, Write};


pub trait WriteDebExt: Write {
    fn write_kv(&mut self, key: &str, value: &str) -> io::Result<()> {
        write!(self, "{}: {}\n", key, _control_multiline(value))
    }
    fn write_kv_lines<I, E>(&mut self, key: &str, lines: I) -> io::Result<()>
        where I: Iterator<Item=E>, E: AsRef<str>
    {
        try!(write!(self, "{}:\n", key));
        for line in lines {
            try!(write!(self, " {}\n", _control_multiline(line.as_ref())));
        }
        Ok(())
    }
}

fn _control_multiline(val: &str) -> String {
    let mut val = val
        .replace("\n\n", "\n.\n")
        .replace("\n", "\n ");
    let trimmed_len = val.trim_right().len();
    val.truncate(trimmed_len);
    return val;
}

impl<T: Write> WriteDebExt for T {}