use fmt; use fs; use io; use os; use gpt; export fn mkvol(vol: str) io::file = { return match (os::create(vol, fs::mode::USER_RWX | fs::mode::GROUP_RX | fs::mode::OTHER_RX, fs::flags::RDWR)) { case let v: io::file => yield v; case => fmt::fatalf("{}: cannot open file {}", os::args[0], vol); }; }; export fn openvol(vol: str) io::file = { return match (os::open(vol, fs::flags::RDWR)) { case let v: io::file => yield v; case => fmt::fatalf("{}: cannot open file {}", os::args[0], vol); }; }; export fn opengpt(vol: str) *gpt::gpt = { const vol = openvol(vol); return match (gpt::from(vol)) { case let g: *gpt::gpt => yield g; case io::error => fmt::fatalf("{}: could not properly read disk {}", os::args[0], os::args[1]); case => fmt::fatalf("{}: no valid gpt in disk", os::args[0]); }; };