Cleanup some code that should've been done earlier #7
51
src/app.rs
51
src/app.rs
@@ -78,31 +78,26 @@ enum ShellCompletions {
|
|||||||
impl App {
|
impl App {
|
||||||
pub fn run(self) {
|
pub fn run(self) {
|
||||||
match self.command {
|
match self.command {
|
||||||
Subcommand::New { name } => match create_project(&name) {
|
Subcommand::New { name } => {
|
||||||
Err(e) => {
|
if let Err(e) = create_project(&name) {
|
||||||
eprintln!("Error creating project '{name}': {e}");
|
eprintln!("Error creating project '{name}': {e}");
|
||||||
std::process::exit(1);
|
std::process::exit(1);
|
||||||
}
|
}
|
||||||
_ => {}
|
}
|
||||||
},
|
Subcommand::Init => {
|
||||||
Subcommand::Init => match create_project(".") {
|
if let Err(e) = create_project(".") {
|
||||||
Err(e) => {
|
|
||||||
eprintln!("Error initializing project: {e}");
|
eprintln!("Error initializing project: {e}");
|
||||||
std::process::exit(1);
|
std::process::exit(1);
|
||||||
}
|
}
|
||||||
_ => {}
|
}
|
||||||
},
|
|
||||||
Subcommand::Run {
|
Subcommand::Run {
|
||||||
mode,
|
mode,
|
||||||
args,
|
args,
|
||||||
force_recompile,
|
force_recompile,
|
||||||
} => {
|
} => {
|
||||||
match build(&mode, force_recompile) {
|
if let Err(e) = build(&mode, force_recompile) {
|
||||||
Err(e) => {
|
|
||||||
eprintln!("Error building project: {e}");
|
eprintln!("Error building project: {e}");
|
||||||
std::process::exit(1);
|
std::process::exit(1);
|
||||||
}
|
|
||||||
_ => {}
|
|
||||||
};
|
};
|
||||||
if let Err(e) = run(&mode, args) {
|
if let Err(e) = run(&mode, args) {
|
||||||
eprintln!("Error running project: {e}");
|
eprintln!("Error running project: {e}");
|
||||||
@@ -112,20 +107,18 @@ impl App {
|
|||||||
Subcommand::Build {
|
Subcommand::Build {
|
||||||
mode,
|
mode,
|
||||||
force_recompile,
|
force_recompile,
|
||||||
} => match build(&mode, force_recompile) {
|
} => {
|
||||||
Err(e) => {
|
if let Err(e) = build(&mode, force_recompile) {
|
||||||
eprintln!("Error building project: {e}");
|
eprintln!("Error building project: {e}");
|
||||||
std::process::exit(1);
|
std::process::exit(1);
|
||||||
}
|
}
|
||||||
_ => {}
|
}
|
||||||
},
|
Subcommand::Clean => {
|
||||||
Subcommand::Clean => match clean() {
|
if let Err(e) = clean() {
|
||||||
Err(e) => {
|
|
||||||
eprintln!("Error cleaning project: {e}");
|
eprintln!("Error cleaning project: {e}");
|
||||||
std::process::exit(1);
|
std::process::exit(1);
|
||||||
}
|
}
|
||||||
_ => {}
|
}
|
||||||
},
|
|
||||||
Subcommand::Utils { command } => match command {
|
Subcommand::Utils { command } => match command {
|
||||||
UtilSubcommand::Completions { shell } => {
|
UtilSubcommand::Completions { shell } => {
|
||||||
let name = env!("CARGO_PKG_NAME");
|
let name = env!("CARGO_PKG_NAME");
|
||||||
@@ -158,13 +151,12 @@ impl App {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Subcommand::List => match list() {
|
Subcommand::List => {
|
||||||
Err(e) => {
|
if let Err(e) = list() {
|
||||||
eprintln!("Error listing build profiles: {e}");
|
eprintln!("Error listing build profiles: {e}");
|
||||||
std::process::exit(1);
|
std::process::exit(1);
|
||||||
}
|
}
|
||||||
_ => {}
|
}
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -292,9 +284,14 @@ fn build(mode: &Option<String>, force_recompile: bool) -> std::io::Result<()> {
|
|||||||
.arg("-o")
|
.arg("-o")
|
||||||
.arg(format!("target/{}/{}", build_config.name, conf.name));
|
.arg(format!("target/{}/{}", build_config.name, conf.name));
|
||||||
|
|
||||||
let mut child = command.spawn()?;
|
let status = command.status()?;
|
||||||
|
|
||||||
child.wait()?;
|
if !status.success() {
|
||||||
|
return Err(std::io::Error::new(
|
||||||
|
std::io::ErrorKind::Other,
|
||||||
|
format!("compiler exited with status {status}"),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
std::fs::write(format!("target/{}/.build_hash", build_config.name), hash)?;
|
std::fs::write(format!("target/{}/.build_hash", build_config.name), hash)?;
|
||||||
|
|
||||||
@@ -360,7 +357,7 @@ fn run(mode: &Option<String>, args: Option<Vec<String>>) -> std::io::Result<()>
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn clean() -> std::io::Result<()> {
|
fn clean() -> std::io::Result<()> {
|
||||||
if let None = get_config() {
|
if get_config().is_none() {
|
||||||
return Err(std::io::Error::new(
|
return Err(std::io::Error::new(
|
||||||
std::io::ErrorKind::NotFound,
|
std::io::ErrorKind::NotFound,
|
||||||
"no Pallet.toml found in local dir",
|
"no Pallet.toml found in local dir",
|
||||||
|
|||||||
Reference in New Issue
Block a user