feat: Show error if no clusters are found in repo
This commit is contained in:
Generated
+1
@@ -290,6 +290,7 @@ dependencies = [
|
|||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"serde_yaml",
|
"serde_yaml",
|
||||||
|
"thiserror 2.0.18",
|
||||||
"walkdir",
|
"walkdir",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -23,4 +23,5 @@ semver = { version = "1.0.27", features = ["serde"] }
|
|||||||
serde = { version = "1.0.228", features = ["derive"] }
|
serde = { version = "1.0.228", features = ["derive"] }
|
||||||
serde_json = { workspace = true }
|
serde_json = { workspace = true }
|
||||||
serde_yaml = "0.9.34"
|
serde_yaml = "0.9.34"
|
||||||
|
thiserror = "2.0.18"
|
||||||
walkdir = "2.5.0"
|
walkdir = "2.5.0"
|
||||||
|
|||||||
+19
-4
@@ -6,15 +6,26 @@ use crete::cluster::get_clusters;
|
|||||||
use crete::environment::PathEnvironment;
|
use crete::environment::PathEnvironment;
|
||||||
use crete::set_repo_path;
|
use crete::set_repo_path;
|
||||||
use minijinja::context;
|
use minijinja::context;
|
||||||
|
use thiserror::Error;
|
||||||
|
|
||||||
use crate::cli::{Cli, Commands, GlobalOpts};
|
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);
|
set_repo_path(&opts.repo);
|
||||||
|
|
||||||
let patch_env = PathEnvironment::new_patches();
|
let patch_env = PathEnvironment::new_patches();
|
||||||
let clusters = get_clusters(&patch_env);
|
let clusters = get_clusters(&patch_env);
|
||||||
|
|
||||||
|
if clusters.is_empty() {
|
||||||
|
return Err(Error::NoClustersFound);
|
||||||
|
}
|
||||||
|
|
||||||
let path = opts.repo.join("rendered");
|
let path = opts.repo.join("rendered");
|
||||||
if path.exists() {
|
if path.exists() {
|
||||||
std::fs::remove_dir_all(&path).unwrap();
|
std::fs::remove_dir_all(&path).unwrap();
|
||||||
@@ -34,18 +45,22 @@ fn generate(opts: &GlobalOpts) {
|
|||||||
|
|
||||||
std::fs::write(path.join(template_name), content).unwrap();
|
std::fs::write(path.join(template_name), content).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() -> Result<(), Error> {
|
||||||
let cli = Cli::parse();
|
let cli = Cli::parse();
|
||||||
|
|
||||||
match cli.command {
|
match cli.command {
|
||||||
Commands::Generate => generate(&cli.global_opts),
|
Commands::Generate => generate(&cli.global_opts)?,
|
||||||
Commands::ShellCompletions => generate_complete(
|
Commands::ShellCompletions => generate_complete(
|
||||||
Shell::from_env().unwrap_or(Shell::Bash),
|
Shell::from_env().unwrap_or(Shell::Bash),
|
||||||
&mut Cli::command(),
|
&mut Cli::command(),
|
||||||
"crete",
|
"crete",
|
||||||
&mut std::io::stdout(),
|
&mut std::io::stdout(),
|
||||||
),
|
),
|
||||||
}
|
};
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user