Skip to content

Commit 8c71fbe

Browse files
committed
fix(cli): stdout out of order for Confirm
1 parent e520c40 commit 8c71fbe

File tree

3 files changed

+37
-31
lines changed

3 files changed

+37
-31
lines changed

meta-cli/src/deploy/actors/console/input.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,9 @@ impl Confirm {
122122
) -> Result<bool> {
123123
let mut retry_left = self.max_retry_count as isize;
124124

125-
eprintln!("{} {}", "[confirm]".yellow(), self.prompt);
126-
127125
loop {
128-
eprint!("(y/N)> ");
126+
self.console
127+
.error(format!("{} {} (y/N)", "[confirm]".yellow(), self.prompt));
129128

130129
let input = self.console.read_line().await;
131130

meta-cli/src/deploy/push/migration_resolution.rs

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,41 @@ use actix::prelude::*;
77
use anyhow::Result;
88
use colored::Colorize;
99

10-
use crate::deploy::actors::{
11-
console::{
12-
input::{OptionLabel, SelectOption},
13-
Console, ConsoleActor,
10+
use crate::{
11+
com::{responses::SDKResponse, store::ServerStore},
12+
deploy::actors::{
13+
console::{
14+
input::{ConfirmHandler, OptionLabel, SelectOption},
15+
Console, ConsoleActor,
16+
},
17+
loader::{LoadModule, LoaderActor},
1418
},
15-
loader::{LoadModule, LoaderActor},
1619
};
1720

21+
// DatabaseReset failure
22+
23+
#[derive(Debug)]
24+
pub struct ConfirmDatabaseResetRequired {
25+
pub sdk_response: SDKResponse,
26+
pub loader: Addr<LoaderActor>,
27+
}
28+
29+
impl ConfirmHandler for ConfirmDatabaseResetRequired {
30+
fn on_confirm(&self) {
31+
let tg_path = self.sdk_response.clone().typegraph_path;
32+
33+
// reset
34+
let mut option = ServerStore::get_migration_action(&tg_path);
35+
option.reset = true;
36+
ServerStore::set_migration_action(tg_path.clone(), option);
37+
38+
// reload
39+
self.loader.do_send(LoadModule(tg_path.into()));
40+
}
41+
}
42+
43+
// NullConstraintViolation failure
44+
1845
#[derive(Debug)]
1946
pub struct ForceReset {
2047
pub loader: Addr<LoaderActor>,

meta-cli/src/deploy/push/pusher.rs

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ use anyhow::Result;
1313
use serde::Deserialize;
1414

1515
use crate::com::{responses::SDKResponse, store::ServerStore};
16-
use crate::deploy::actors::console::input::{Confirm, ConfirmHandler, Select};
16+
use crate::deploy::actors::console::input::{Confirm, Select};
1717
use crate::deploy::actors::console::{Console, ConsoleActor};
18-
use crate::deploy::actors::loader::{LoadModule, LoaderActor};
18+
use crate::deploy::actors::loader::LoaderActor;
1919
use crate::deploy::push::migration_resolution::{ManualResolution, RemoveLatestMigration};
2020

2121
use lazy_static::lazy_static;
2222

23-
use super::migration_resolution::ForceReset;
23+
use super::migration_resolution::{ConfirmDatabaseResetRequired, ForceReset};
2424

2525
#[derive(Deserialize, Debug)]
2626
#[serde(rename_all = "snake_case")]
@@ -208,26 +208,6 @@ impl PushResult {
208208

209209
// DatabaseReset Handler + interactivity
210210

211-
#[derive(Debug)]
212-
struct ConfirmDatabaseResetRequired {
213-
sdk_response: SDKResponse,
214-
loader: Addr<LoaderActor>,
215-
}
216-
217-
impl ConfirmHandler for ConfirmDatabaseResetRequired {
218-
fn on_confirm(&self) {
219-
let tg_path = self.sdk_response.clone().typegraph_path;
220-
221-
// reset
222-
let mut option = ServerStore::get_migration_action(&tg_path);
223-
option.reset = true;
224-
ServerStore::set_migration_action(tg_path.clone(), option);
225-
226-
// reload
227-
self.loader.do_send(LoadModule(tg_path.into()));
228-
}
229-
}
230-
231211
async fn handle_database_reset(
232212
console: Addr<ConsoleActor>,
233213
loader: Addr<LoaderActor>,

0 commit comments

Comments
 (0)