Updates
This commit is contained in:
@@ -38,12 +38,6 @@ enum Commands {
|
||||
#[arg(long, default_value = "ws://127.0.0.1:9944")]
|
||||
url: String,
|
||||
},
|
||||
/// Connect to Unix socket server
|
||||
Unix {
|
||||
/// Unix socket path
|
||||
#[arg(long, default_value = "/tmp/hero-openrpc.sock")]
|
||||
socket_path: PathBuf,
|
||||
},
|
||||
}
|
||||
|
||||
/// Available RPC methods with descriptions
|
||||
@@ -161,10 +155,6 @@ async fn main() -> Result<()> {
|
||||
println!("{} {}", "Connecting to WebSocket server:".green(), url.cyan());
|
||||
ClientTransport::WebSocket(url)
|
||||
}
|
||||
Commands::Unix { socket_path } => {
|
||||
println!("{} {:?}", "Connecting to Unix socket server:".green(), socket_path);
|
||||
ClientTransport::Unix(socket_path)
|
||||
}
|
||||
};
|
||||
|
||||
// Connect to the server
|
||||
@@ -282,15 +272,18 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
|
||||
.with_prompt("Signature (hex)")
|
||||
.interact_text()?;
|
||||
|
||||
let nonce: String = Input::new()
|
||||
.with_prompt("Nonce (hex) - fetch via fetch_nonce first")
|
||||
.interact_text()?;
|
||||
|
||||
let result = client.authenticate(pubkey, signature, nonce).await?;
|
||||
println!("{} {}", "Authentication result:".green().bold(),
|
||||
println!("{} {}", "Authentication result:".green().bold(),
|
||||
if result { "Success".green() } else { "Failed".red() });
|
||||
}
|
||||
|
||||
"whoami" => {
|
||||
let result = client.whoami().await?;
|
||||
println!("{} {}", "User info:".green().bold(),
|
||||
serde_json::to_string_pretty(&result)?.cyan());
|
||||
println!("{} {}", "User info:".green().bold(), result.cyan());
|
||||
}
|
||||
|
||||
"play" => {
|
||||
@@ -307,7 +300,7 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
|
||||
.with_prompt("Script content")
|
||||
.interact_text()?;
|
||||
|
||||
let script_types = ["HeroScript", "RhaiSAL", "RhaiDSL"];
|
||||
let script_types = ["OSIS", "SAL", "V", "Python"];
|
||||
let script_type_selection = Select::new()
|
||||
.with_prompt("Script type")
|
||||
.items(&script_types)
|
||||
@@ -315,10 +308,10 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
|
||||
.interact()?;
|
||||
|
||||
let script_type = match script_type_selection {
|
||||
0 => ScriptType::HeroScript,
|
||||
1 => ScriptType::RhaiSAL,
|
||||
2 => ScriptType::RhaiDSL,
|
||||
_ => ScriptType::HeroScript,
|
||||
0 => ScriptType::OSIS,
|
||||
1 => ScriptType::SAL,
|
||||
2 => ScriptType::V,
|
||||
_ => ScriptType::Python,
|
||||
};
|
||||
|
||||
let add_prerequisites = Confirm::new()
|
||||
@@ -335,9 +328,34 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
|
||||
None
|
||||
};
|
||||
|
||||
let caller_id: String = Input::new()
|
||||
.with_prompt("Caller ID")
|
||||
.interact_text()?;
|
||||
|
||||
let context_id: String = Input::new()
|
||||
.with_prompt("Context ID")
|
||||
.interact_text()?;
|
||||
|
||||
let specify_timeout = Confirm::new()
|
||||
.with_prompt("Specify timeout (seconds)?")
|
||||
.default(false)
|
||||
.interact()?;
|
||||
|
||||
let timeout = if specify_timeout {
|
||||
let t: u64 = Input::new()
|
||||
.with_prompt("Timeout (seconds)")
|
||||
.interact_text()?;
|
||||
Some(t)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let job_params = JobParams {
|
||||
script,
|
||||
script_type,
|
||||
caller_id,
|
||||
context_id,
|
||||
timeout,
|
||||
prerequisites,
|
||||
};
|
||||
|
||||
@@ -360,7 +378,7 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
|
||||
.with_prompt("Script content")
|
||||
.interact_text()?;
|
||||
|
||||
let script_types = ["HeroScript", "RhaiSAL", "RhaiDSL"];
|
||||
let script_types = ["OSIS", "SAL", "V", "Python"];
|
||||
let script_type_selection = Select::new()
|
||||
.with_prompt("Script type")
|
||||
.items(&script_types)
|
||||
@@ -368,10 +386,10 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
|
||||
.interact()?;
|
||||
|
||||
let script_type = match script_type_selection {
|
||||
0 => ScriptType::HeroScript,
|
||||
1 => ScriptType::RhaiSAL,
|
||||
2 => ScriptType::RhaiDSL,
|
||||
_ => ScriptType::HeroScript,
|
||||
0 => ScriptType::OSIS,
|
||||
1 => ScriptType::SAL,
|
||||
2 => ScriptType::V,
|
||||
_ => ScriptType::Python,
|
||||
};
|
||||
|
||||
let add_prerequisites = Confirm::new()
|
||||
@@ -416,18 +434,17 @@ async fn execute_method(client: &HeroOpenRpcClient, method_name: &str) -> Result
|
||||
.interact_text()?;
|
||||
|
||||
let result = client.get_job_logs(job_id).await?;
|
||||
println!("{} {}", "Job logs:".green().bold(), result.logs.cyan());
|
||||
match result.logs {
|
||||
Some(logs) => println!("{} {}", "Job logs:".green().bold(), logs.cyan()),
|
||||
None => println!("{} {}", "Job logs:".green().bold(), "(no logs)".yellow()),
|
||||
}
|
||||
}
|
||||
|
||||
"list_jobs" => {
|
||||
let result = client.list_jobs().await?;
|
||||
println!("{}", "Jobs:".green().bold());
|
||||
for job in result {
|
||||
println!(" {} - {} ({:?})",
|
||||
job.id().yellow(),
|
||||
job.script_type(),
|
||||
job.status()
|
||||
);
|
||||
println!("{}", "Job IDs:".green().bold());
|
||||
for id in result {
|
||||
println!(" {}", id.yellow());
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user