Skip to content

Commit ebf655c

Browse files
committed
feat: Adding log folder initalization
1 parent db8bac8 commit ebf655c

File tree

5 files changed

+52
-40
lines changed

5 files changed

+52
-40
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ assets/vmlinux
66

77
firecracker
88
tmp
9+
logs
910
todo
1011

1112
.vscode

src/cli.yml

Lines changed: 44 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,47 @@ version: '1.0'
33
author: Andrei Sousa <sousandrei@gmail.com>
44
about: Simple AWS Firecracker orchestrator
55
args:
6-
- assets_dir:
7-
short: a
8-
long: assets_dir
9-
value_name: DIR
10-
help: Folder containing the assets (kernel, and drive)
11-
default_value: './assets'
12-
- tmp_dir:
13-
short: t
14-
long: tmp_dir
15-
value_name: DIR
16-
help: Sets a custom tmp dir to use
17-
takes_value: true
18-
default_value: './tmp'
19-
- kernel_name:
20-
short: k
21-
long: kernel_name
22-
value_name: KERNEL_NAME
23-
help: Name of the kernel file
24-
default_value: 'vmlinux'
25-
- drive_name:
26-
short: d
27-
long: drive_name
28-
value_name: BOOT_DRIVE_NAME
29-
help: Name of the boot drive file
30-
default_value: 'rootfs.ext4'
31-
- firecracker_path:
32-
short: f
33-
long: firecracker_path
34-
value_name: FIRECRACKER_PATH
35-
help: Path of the firecracker binary
36-
default_value: './assets/firecracker'
37-
- port:
38-
short: p
39-
long: port
40-
value_name: PORT
41-
help: Port to run http server
42-
default_value: '3000'
6+
- assets_dir:
7+
short: a
8+
long: assets_dir
9+
value_name: DIR
10+
help: Folder containing the assets (kernel, and drive)
11+
default_value: './assets'
12+
- tmp_dir:
13+
short: t
14+
long: tmp_dir
15+
value_name: DIR
16+
help: Sets a custom tmp dir to use
17+
takes_value: true
18+
default_value: './tmp'
19+
- log_dir:
20+
short: l
21+
long: log_dir
22+
value_name: DIR
23+
help: Sets a custom tmp dir to use
24+
takes_value: true
25+
default_value: './logs'
26+
- kernel_name:
27+
short: k
28+
long: kernel_name
29+
value_name: KERNEL_NAME
30+
help: Name of the kernel file
31+
default_value: 'vmlinux'
32+
- drive_name:
33+
short: d
34+
long: drive_name
35+
value_name: BOOT_DRIVE_NAME
36+
help: Name of the boot drive file
37+
default_value: 'rootfs.ext4'
38+
- firecracker_path:
39+
short: f
40+
long: firecracker_path
41+
value_name: FIRECRACKER_PATH
42+
help: Path of the firecracker binary
43+
default_value: './assets/firecracker'
44+
- port:
45+
short: p
46+
long: port
47+
value_name: PORT
48+
help: Port to run http server
49+
default_value: '3000'
File renamed without changes.

src/io.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ pub fn create_folder(path: PathBuf) -> Result<(), std::io::Error> {
2424
match fs::read_dir(&path) {
2525
Ok(entries) => {
2626
if entries.peekable().peek().is_some() {
27-
warn!("Warning: tmp dir not empty [{}]", path.display());
27+
warn!("Warning: dir not empty [{}]", path.display());
2828
}
2929
}
3030
Err(e) => error!("Cannot read dir [{}]", e),

src/main.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ use tracing::info;
88

99
mod api;
1010
mod error;
11+
mod folders;
1112
mod io;
12-
mod tmp;
1313
mod vm;
1414

1515
#[derive(Serialize, Deserialize, Debug)]
@@ -21,6 +21,7 @@ pub struct Vm {
2121
pub struct State {
2222
vms: Arc<Mutex<Vec<Vm>>>,
2323
tmp_dir: String,
24+
log_dir: String,
2425
assets_dir: String,
2526
drive_name: String,
2627
kernel_name: String,
@@ -31,6 +32,7 @@ impl Clone for State {
3132
State {
3233
vms: self.vms.clone(),
3334
tmp_dir: self.tmp_dir.clone(),
35+
log_dir: self.log_dir.clone(),
3436
assets_dir: self.assets_dir.clone(),
3537
drive_name: self.drive_name.clone(),
3638
kernel_name: self.kernel_name.clone(),
@@ -52,12 +54,14 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
5254
let state = State {
5355
vms: Arc::new(Mutex::new(Vec::new())),
5456
tmp_dir: String::from(matches.value_of("tmp_dir").unwrap()),
57+
log_dir: String::from(matches.value_of("log_dir").unwrap()),
5558
assets_dir: String::from(matches.value_of("assets_dir").unwrap()),
5659
drive_name: String::from(matches.value_of("drive_name").unwrap()),
5760
kernel_name: String::from(matches.value_of("kernel_name").unwrap()),
5861
};
5962

60-
tmp::init(&state.tmp_dir)?;
63+
folders::init(&state.tmp_dir)?;
64+
folders::init(&state.log_dir)?;
6165

6266
let port = matches.value_of("port").unwrap();
6367
let port: u16 = port.parse().unwrap();

0 commit comments

Comments
 (0)