use fmt; use fs; use getopt; use io; use os; use strconv; use gpt; use cmd; export fn create(vol: str, args: []str) void = { // XXX this is a stub const c = getopt::parse(args, "create a volume", ('f', "file", "specify another partition file to fit"), ('l', "length", "specify another length margin") ); defer getopt::finish(&c); let length = 0z; for (let i = 0z; i < len(c.opts); i += 1) { const opt = c.opts[i]; switch (opt.0) { case 'l' => length += (strconv::stoi(opt.1)! / 512 + 1): size; case 'f' => const stat = os::stat(opt.1)!; length += stat.sz / 512 + 1; }; }; const vol = cmd::mkvol(vol); const vol = gpt::create(vol, length); defer { gpt::chksums(vol); gpt::commit(vol)!; gpt::finish(vol); }; };