aboutsummaryrefslogtreecommitdiff
path: root/mingling_ci/src/bin/ci.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_ci/src/bin/ci.rs')
-rw-r--r--mingling_ci/src/bin/ci.rs46
1 files changed, 46 insertions, 0 deletions
diff --git a/mingling_ci/src/bin/ci.rs b/mingling_ci/src/bin/ci.rs
new file mode 100644
index 0000000..a212921
--- /dev/null
+++ b/mingling_ci/src/bin/ci.rs
@@ -0,0 +1,46 @@
+use just_progress::{
+ progress::{self},
+ renderer::ProgressSimpleRenderer,
+};
+use mingling::{
+ hook::ProgramHook,
+ setup::{
+ ConfirmSetup, DirectoryEnvironmentSetup, ExitCodeSetup,
+ picker::{ConfirmFlagSetup, HelpFlagSetup, QuietFlagSetup},
+ },
+};
+use tokio::join;
+
+use mingling_ci_system::ThisProgram;
+use mingling_ci_system::res::*;
+
+#[tokio::main]
+async fn main() {
+ let center = progress::init();
+ let renderer = ProgressSimpleRenderer::new().with_subprogress(true);
+ let bind = progress::bind(center, move |name, state| renderer.update(name, state));
+
+ let (_, exit_code) = join!(bind, mingling_ci_begin());
+ std::process::exit(exit_code);
+}
+
+async fn mingling_ci_begin() -> i32 {
+ let mut program = ThisProgram::new();
+
+ program.with_hook(ProgramHook::empty().on_finish(|_| progress::close()));
+
+ // Plugins
+ program.with_setup(ExitCodeSetup::default());
+ program.with_setup(DirectoryEnvironmentSetup::default());
+
+ program.with_setup(HelpFlagSetup::default());
+ program.with_setup(ConfirmFlagSetup::default());
+ program.with_setup(QuietFlagSetup::default());
+
+ program.with_setup(ConfirmSetup);
+
+ // CI Plugins
+ program.with_setup(ManifestsSetup);
+
+ program.exec().await
+}