Nothing to see here, move along
1#![no_std]
2#![no_main]
3
4use lancer_user::fs;
5use lancer_user::net;
6use lancer_user::println;
7use lancer_user::syscall;
8
9#[unsafe(no_mangle)]
10pub extern "C" fn lancer_main() -> ! {
11 let (rx, _tx) = match net::init() {
12 Some(pair) => pair,
13 None => {
14 lancer_user::show!(net, error, "netsock init failed");
15 syscall::exit();
16 }
17 };
18
19 let mut args_buf = [0u8; 256];
20 let args_len = net::recv_args(&rx, &mut args_buf);
21 let args = &args_buf[..args_len];
22
23 let (_cmd, rest) = net::next_token(args);
24 let (path_tok, _) = net::next_token(rest);
25
26 if path_tok.is_empty() {
27 println!("usage: mkdir <path>");
28 syscall::exit();
29 }
30
31 let mut client = unsafe { fs::init() };
32
33 let (parent, basename) = match fs::open_parent(&mut client, 0, path_tok) {
34 Ok(pair) => pair,
35 Err(e) => {
36 println!("mkdir: {}", e.name());
37 syscall::exit();
38 }
39 };
40
41 match client.mkdir(parent, basename) {
42 Ok(()) => {}
43 Err(e) => {
44 println!("mkdir: {}", e.name());
45 }
46 }
47
48 let _ = client.close(parent);
49 syscall::exit()
50}