| 
					
					
					
				 | 
				@ -1,5 +1,6 @@ | 
			
		
		
	
		
			
				 | 
				 | 
				//! This module contains an abstraction for gitignore files
 | 
				 | 
				 | 
				//! This module contains an abstraction for gitignore files
 | 
			
		
		
	
		
			
				 | 
				 | 
				use crate::errors::*;
 | 
				 | 
				 | 
				use crate::errors::*;
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				use log::trace;
 | 
			
		
		
	
		
			
				 | 
				 | 
				use std::fs::OpenOptions;
 | 
				 | 
				 | 
				use std::fs::OpenOptions;
 | 
			
		
		
	
		
			
				 | 
				 | 
				use std::path::PathBuf;
 | 
				 | 
				 | 
				use std::path::PathBuf;
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -13,7 +14,10 @@ impl Gitignore { | 
			
		
		
	
		
			
				 | 
				 | 
				    /// Create a new Gitignore struct from a git root folder path
 | 
				 | 
				 | 
				    /// 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
 | 
				 | 
				 | 
				    /// 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() } }
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    pub fn from_path(path: &PathBuf) -> Self {
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        trace!("Creating gitignore file object for path {}", path.to_string_lossy());
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        Gitignore { path: path.clone() }
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				    /// Append a line to the file
 | 
				 | 
				 | 
				    /// Append a line to the file
 | 
			
		
		
	
		
			
				 | 
				 | 
				    pub fn add_line(&self, line: &str) -> Result<()> {
 | 
				 | 
				 | 
				    pub fn add_line(&self, line: &str) -> Result<()> {
 | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -21,6 +25,7 @@ impl Gitignore { | 
			
		
		
	
		
			
				 | 
				 | 
				        let mut file = OpenOptions::new()
 | 
				 | 
				 | 
				        let mut file = OpenOptions::new()
 | 
			
		
		
	
		
			
				 | 
				 | 
				            .write(true)
 | 
				 | 
				 | 
				            .write(true)
 | 
			
		
		
	
		
			
				 | 
				 | 
				            .append(true)
 | 
				 | 
				 | 
				            .append(true)
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            .create(true)
 | 
			
		
		
	
		
			
				 | 
				 | 
				            .open(&self.path)
 | 
				 | 
				 | 
				            .open(&self.path)
 | 
			
		
		
	
		
			
				 | 
				 | 
				            .chain_err(|| "Error while opening gitignore file")?;
 | 
				 | 
				 | 
				            .chain_err(|| "Error while opening gitignore file")?;
 | 
			
		
		
	
		
			
				 | 
				 | 
				        writeln!(file, "{}", line).chain_err(|| "Error while writing line to gitignore")?;
 | 
				 | 
				 | 
				        writeln!(file, "{}", line).chain_err(|| "Error while writing line to gitignore")?;
 | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |