feat: Show error if no clusters are found in repo
This commit is contained in:
+19
-4
@@ -6,15 +6,26 @@ use crete::cluster::get_clusters;
|
||||
use crete::environment::PathEnvironment;
|
||||
use crete::set_repo_path;
|
||||
use minijinja::context;
|
||||
use thiserror::Error;
|
||||
|
||||
use crate::cli::{Cli, Commands, GlobalOpts};
|
||||
|
||||
fn generate(opts: &GlobalOpts) {
|
||||
#[derive(Debug, Error)]
|
||||
enum Error {
|
||||
#[error("No clusters where found")]
|
||||
NoClustersFound,
|
||||
}
|
||||
|
||||
fn generate(opts: &GlobalOpts) -> Result<(), Error> {
|
||||
set_repo_path(&opts.repo);
|
||||
|
||||
let patch_env = PathEnvironment::new_patches();
|
||||
let clusters = get_clusters(&patch_env);
|
||||
|
||||
if clusters.is_empty() {
|
||||
return Err(Error::NoClustersFound);
|
||||
}
|
||||
|
||||
let path = opts.repo.join("rendered");
|
||||
if path.exists() {
|
||||
std::fs::remove_dir_all(&path).unwrap();
|
||||
@@ -34,18 +45,22 @@ fn generate(opts: &GlobalOpts) {
|
||||
|
||||
std::fs::write(path.join(template_name), content).unwrap();
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn main() {
|
||||
fn main() -> Result<(), Error> {
|
||||
let cli = Cli::parse();
|
||||
|
||||
match cli.command {
|
||||
Commands::Generate => generate(&cli.global_opts),
|
||||
Commands::Generate => generate(&cli.global_opts)?,
|
||||
Commands::ShellCompletions => generate_complete(
|
||||
Shell::from_env().unwrap_or(Shell::Bash),
|
||||
&mut Cli::command(),
|
||||
"crete",
|
||||
&mut std::io::stdout(),
|
||||
),
|
||||
}
|
||||
};
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user