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.
This commit is contained in:
TheOddGarlic 2022-03-26 14:26:17 +03:00
parent b1eaea239e
commit 10646959fa
4 changed files with 23 additions and 1 deletions

2
.gitignore vendored
View file

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

View file

@ -9,7 +9,7 @@ use ext2::{
fn load_fs() -> Synced<Ext2<Size1024, Vec<u8>>> { fn load_fs() -> Synced<Ext2<Size1024, Vec<u8>>> {
let mut volume = Vec::new(); 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(); let fs = Synced::<Ext2<Size1024, _>>::new(volume).unwrap();

View file

@ -16,6 +16,16 @@ enum Command {
#[clap(long, short, arg_enum)] #[clap(long, short, arg_enum)]
machine: Option<MachineType>, machine: Option<MachineType>,
}, },
Mount {
#[clap(long, short)]
path: Option<String>,
},
Unmount {
#[clap(long, short)]
path: Option<String>,
},
} }
#[derive(clap::ArgEnum, Debug, Clone)] #[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(()) Ok(())