A cli program to easily handle .gitignore files
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

28 lines
894 B

use crate::errors::*;
use std::fs::OpenOptions;
use std::path::PathBuf;
/// An abstraction of the gitignore file
#[derive(Debug, Default)]
pub struct Gitignore {
/// The path to the gitignore
path: PathBuf,
}
impl Gitignore {
/// Create a new Gitignore struct from a git root folder path
///
/// The given `path` must be a valid path to an existing git root folder
pub fn from_path(path: &PathBuf) -> Self { Gitignore { path: path.clone() } }
/// Append a line to the file
pub fn add_line(&self, line: &str) -> Result<()> {
use std::io::prelude::*;
let mut file = OpenOptions::new()
.write(true)
.append(true)
.open(&self.path)
.chain_err(|| "Error while opening gitignore file")?;
writeln!(file, "{}", line).chain_err(|| "Error while writing line to gitignore")?;
Ok(())
}
}