use crate::ux::format::Output;
pub(crate) struct GuidedSetup<'a> {
out: &'a Output,
total_steps: usize,
current_step: usize,
interactive: bool,
}
impl<'a> GuidedSetup<'a> {
pub fn new(out: &'a Output, total_steps: usize, interactive: bool) -> Self {
Self {
out,
total_steps,
current_step: 0,
interactive,
}
}
pub fn section(&mut self, title: &str) {
self.current_step += 1;
if self.interactive {
self.out.newline();
self.out.print_heading(&format!(
"[{}/{}] {}",
self.current_step, self.total_steps, title
));
self.out.newline();
}
}
}
pub(crate) fn developer_steps() -> usize {
5
}
pub(crate) fn ci_steps() -> usize {
3
}
pub(crate) fn agent_steps() -> usize {
3
}