git_rs 0.1.0

A (work in progress) pure rust git implementation.
Documentation
extern crate git_rs;

use std::io::{ self, Cursor };
use memmap::MmapOptions;
use std::fs::File;

use git_rs::stores::fs as gitfs;
use git_rs::pack::index::write;

pub fn main() -> std::io::Result<()> {
    let current_dir = std::env::current_dir()?;
    let args: Vec<String> = std::env::args().collect();
    if args.len() < 2 {
        eprintln!("must provide a filename");
        return Ok(())
    }

    let f = File::open(&args[1])?;
    let mmap = unsafe { MmapOptions::new().map(&f)? };

    let cursor = Cursor::new(&mmap[..]);

    let storage_set = gitfs::from(current_dir.as_path()).expect("failed to open storage");
    write(cursor, &mut io::stdout(), Some(&storage_set));

    Ok(())
}