Merge pull request #153 from matthiasbeyer/libimagstore/add-debugging-output

Libimagstore/add debugging output
This commit is contained in:
Matthias Beyer 2016-02-05 16:03:23 +01:00
commit 959a68f1a6
4 changed files with 13 additions and 0 deletions

View file

@ -4,6 +4,7 @@ version = "0.1.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"] authors = ["Matthias Beyer <mail@beyermatthias.de>"]
[dependencies] [dependencies]
log = "0.3.5"
fs2 = "0.2.2" fs2 = "0.2.2"
glob = "0.2.10" glob = "0.2.10"
regex = "0.1.47" regex = "0.1.47"

View file

@ -9,6 +9,7 @@ use std::fs::{File, OpenOptions};
* *
* A lazy file is either absent, but a path to it is available, or it is present. * A lazy file is either absent, but a path to it is available, or it is present.
*/ */
#[derive(Debug)]
pub enum LazyFile { pub enum LazyFile {
Absent(PathBuf), Absent(PathBuf),
File(File) File(File)
@ -52,6 +53,7 @@ impl LazyFile {
* Get the mutable file behind a LazyFile object * Get the mutable file behind a LazyFile object
*/ */
pub fn get_file_mut(&mut self) -> Result<&mut File, StoreError> { pub fn get_file_mut(&mut self) -> Result<&mut File, StoreError> {
debug!("Getting lazy file: {:?}", self);
let file = match *self { let file = match *self {
LazyFile::File(ref mut f) => return { LazyFile::File(ref mut f) => return {
// We seek to the beginning of the file since we expect each // We seek to the beginning of the file since we expect each
@ -79,6 +81,7 @@ impl LazyFile {
* Create a file out of this LazyFile object * Create a file out of this LazyFile object
*/ */
pub fn create_file(&mut self) -> Result<&mut File, StoreError> { pub fn create_file(&mut self) -> Result<&mut File, StoreError> {
debug!("Creating lazy file: {:?}", self);
let file = match *self { let file = match *self {
LazyFile::File(ref mut f) => return Ok(f), LazyFile::File(ref mut f) => return Ok(f),
LazyFile::Absent(ref p) => { LazyFile::Absent(ref p) => {

View file

@ -1,4 +1,5 @@
#[macro_use] extern crate version; #[macro_use] extern crate version;
#[macro_use] extern crate log;
extern crate fs2; extern crate fs2;
extern crate glob; extern crate glob;
extern crate regex; extern crate regex;

View file

@ -104,18 +104,23 @@ impl Store {
pub fn new(location: PathBuf) -> Result<Store> { pub fn new(location: PathBuf) -> Result<Store> {
use std::fs::create_dir_all; use std::fs::create_dir_all;
debug!("Building new Store object");
if !location.exists() { if !location.exists() {
debug!("Creating store path");
let c = create_dir_all(location.clone()); let c = create_dir_all(location.clone());
if c.is_err() { if c.is_err() {
debug!("Failed");
return Err(StoreError::new(StoreErrorKind::StorePathCreate, return Err(StoreError::new(StoreErrorKind::StorePathCreate,
Some(Box::new(c.err().unwrap())))); Some(Box::new(c.err().unwrap()))));
} }
} else { } else {
if location.is_file() { if location.is_file() {
debug!("Store path exists as file");
return Err(StoreError::new(StoreErrorKind::StorePathExists, None)); return Err(StoreError::new(StoreErrorKind::StorePathExists, None));
} }
} }
debug!("Store building succeeded");
Ok(Store { Ok(Store {
location: location, location: location,
entries: Arc::new(RwLock::new(HashMap::new())), entries: Arc::new(RwLock::new(HashMap::new())),
@ -221,6 +226,7 @@ impl Drop for Store {
* TODO: Unlock them * TODO: Unlock them
*/ */
fn drop(&mut self) { fn drop(&mut self) {
debug!("Dropping store");
} }
} }
@ -407,6 +413,7 @@ impl Entry {
} }
pub fn from_str(loc: StoreId, s: &str) -> Result<Entry> { pub fn from_str(loc: StoreId, s: &str) -> Result<Entry> {
debug!("Building entry from string");
let re = Regex::new(r"(?smx) let re = Regex::new(r"(?smx)
^---$ ^---$
(?P<header>.*) # Header (?P<header>.*) # Header
@ -429,6 +436,7 @@ impl Entry {
return Err(StoreError::new(StoreErrorKind::MalformedEntry, None)); return Err(StoreError::new(StoreErrorKind::MalformedEntry, None));
} }
debug!("Header and content found. Yay! Building Entry object now");
Ok(Entry { Ok(Entry {
location: loc, location: loc,
header: try!(EntryHeader::parse(header.unwrap())), header: try!(EntryHeader::parse(header.unwrap())),