aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/example-exit-code/src/main.rs7
-rw-r--r--examples/test-example-async.toml54
2 files changed, 58 insertions, 3 deletions
diff --git a/examples/example-exit-code/src/main.rs b/examples/example-exit-code/src/main.rs
index f62ad22..1fe5424 100644
--- a/examples/example-exit-code/src/main.rs
+++ b/examples/example-exit-code/src/main.rs
@@ -13,7 +13,7 @@
use mingling::{
macros::{chain, dispatcher, gen_program, pack, r_println, renderer},
- res::update_exit_code,
+ res::{exit_code, update_exit_code},
setup::ExitCodeSetup,
};
@@ -21,7 +21,7 @@ fn main() {
let mut program = ThisProgram::new();
program.with_dispatcher(ErrorCommand);
program.with_setup(ExitCodeSetup::<ThisProgram>::default());
- program.exec();
+ program.exec_and_exit();
}
dispatcher!("error", ErrorCommand => ErrorEntry);
@@ -35,7 +35,8 @@ fn handle_error_entry(_prev: ErrorEntry) -> NextProcess {
#[renderer]
fn render_error(_prev: ResultError) {
- r_println!("Error!");
+ let exit_code = exit_code::<ThisProgram>();
+ r_println!("Exit with exit code: {}", exit_code);
}
gen_program!();
diff --git a/examples/test-example-async.toml b/examples/test-example-async.toml
new file mode 100644
index 0000000..a63f566
--- /dev/null
+++ b/examples/test-example-async.toml
@@ -0,0 +1,54 @@
+[[test.example-async]]
+command = "hello World"
+expect.exit-code = 0
+expect.result = "Hello, World!"
+
+[[test.example-basic]]
+command = "hello World"
+expect.exit-code = 0
+expect.result = "Hello, World!"
+
+[[test.example-exit-code]]
+command = "error"
+expect.exit-code = 1
+expect.result = "Exit with exit code: 1"
+
+[[test.example-general-renderer]]
+command = "render Bob 22"
+expect.exit-code = 0
+expect.result = "Bob is 22 years old"
+
+[[test.example-general-renderer]]
+command = "render Bob 22 --json"
+expect.exit-code = 0
+expect.result = "{\"member_name\":\"Bob\",\"member_age\":22}"
+
+[[test.example-general-renderer]]
+command = "render Bob 22 --yaml"
+expect.exit-code = 0
+expect.result = "member_name: Bob\nmember_age: 22"
+
+[[test.example-picker]]
+command = "pick Bob"
+expect.exit-code = 0
+expect.result = "Picked: name = Bob, age = 20"
+
+[[test.example-picker]]
+command = "pick Bob --age -15"
+expect.exit-code = 0
+expect.result = "Picked: name = Bob, age = 0"
+
+[[test.example-picker]]
+command = "pick --age 99"
+expect.exit-code = 0
+expect.result = "No name provided."
+
+[[test.example-picker]]
+command = "pick"
+expect.exit-code = 0
+expect.result = "No name provided."
+
+[[test.example-picker]]
+command = "pick --age 150"
+expect.exit-code = 0
+expect.result = "No name provided."