Add repbuild subcommands `mount` & `unmount`

These repbuild subcommands mount the filesystem root to the
userland/root_fs/mnt folder, and this makes editing the initial file
system easier.

This also renames userland/root_rs to userland/root_fs.
pls-build-on-my-machine
TheOddGarlic 2022-03-26 14:26:17 +03:00
parent 48751a9d78
commit 70b2bc5d5b
4 changed files with 23 additions and 1 deletions

2
.gitignore vendored
View File

@ -6,3 +6,5 @@ shadeable/target
qprofiler
userland/*/target
kernel/target
userland/root_fs/mnt/*
!*/.gitkeep

View File

@ -9,7 +9,7 @@ use ext2::{
fn load_fs() -> Synced<Ext2<Size1024, Vec<u8>>> {
let mut volume = Vec::new();
volume.extend_from_slice(include_bytes!("../../../userland/root_rs/ext2.img"));
volume.extend_from_slice(include_bytes!("../../../userland/root_fs/ext2.img"));
let fs = Synced::<Ext2<Size1024, _>>::new(volume).unwrap();

View File

@ -16,6 +16,16 @@ enum Command {
#[clap(long, short, arg_enum)]
machine: Option<MachineType>,
},
Mount {
#[clap(long, short)]
path: Option<String>,
},
Unmount {
#[clap(long, short)]
path: Option<String>,
},
}
#[derive(clap::ArgEnum, Debug, Clone)]
@ -89,6 +99,16 @@ fn main() -> anyhow::Result<()> {
}
}
}
Command::Mount { path } => {
let path = path.unwrap_or("./userland/root_fs/mnt".to_string());
xshell::cmd!("sudo mount userland/root_fs/ext2.img {path}").run()?;
},
Command::Unmount { path } => {
let path = path.unwrap_or("./userland/root_fs/mnt".to_string());
xshell::cmd!("sudo umount {path}").run()?;
},
}
Ok(())