Skip to content
Snippets Groups Projects
main.rs 1.46 KiB
Newer Older
extern crate redoxfs;

use std::env;

use redoxfs::{Disk, FileSystem};

use file_disk::FileDisk;

pub mod file_disk;

fn main() {
    let mut args = env::args();
    if let Some(path) = args.nth(1) {
        match FileDisk::new(&path) {
            Ok(disk) => match FileSystem::new(Box::new(disk)) {
                Ok(filesystem) => {
                    let path = args.next().unwrap_or(String::new());
                    for (node_block, node) in filesystem.nodes.iter() {
                        let mut name = "/".to_string();
                        for &b in node.name.iter() {
                            if b == 0 {
                                break;
                            } else {
                                unsafe { name.as_mut_vec().push(b); }
                            }
                        }
                        if name == path {
Jeremy Soller's avatar
Jeremy Soller committed
                            println!("{}: {}", node_block, name);
                            break;
                        } else if name.starts_with(&path) {
                            println!("{}: {}", node_block, name);
                        }
                    }
                },
                Err(err) => {
                    println!("redoxfs: failed to open filesystem: {}", err);
                }
            },
            Err(err) => {
                println!("redoxfs: failed to open disk: {}", err);
            }
        }
    } else {
        println!("redoxfs: no disk image provided");
    }
}