This commit is contained in:
parent
6a1e70c484
commit
c0df07d6df
@ -1,7 +1,7 @@
|
||||
// Basic example of using the Zinit client in Rhai
|
||||
|
||||
// Socket path for Zinit
|
||||
let socket_path = "/var/run/zinit.sock";
|
||||
let socket_path = "/tmp/zinit.sock";
|
||||
|
||||
// List all services
|
||||
print("Listing all services:");
|
||||
|
@ -17,13 +17,31 @@ fn zinit(){
|
||||
let name="zinit";
|
||||
let url="https://github.com/threefoldtech/zinit/releases/download/v0.2.25/zinit-linux-x86_64";
|
||||
download_file(url,`/tmp/${name}`,5000);
|
||||
screen_kill("zinit");
|
||||
copy_bin(`/tmp/${name}`);
|
||||
delete(`/tmp/${name}`);
|
||||
screen_new("zinit", "zinit init");
|
||||
sleep(1);
|
||||
let socket_path = "/tmp/zinit.sock";
|
||||
|
||||
// List all services
|
||||
print("Listing all services:");
|
||||
let services = zinit_list(socket_path);
|
||||
|
||||
if services.is_empty() {
|
||||
print("No services found.");
|
||||
} else {
|
||||
// Iterate over the keys of the map
|
||||
for name in services.keys() {
|
||||
let state = services[name];
|
||||
print(`${name}: ${state}`);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
platform_check_linux_x86();
|
||||
// mycelium();
|
||||
zinit();
|
||||
// mycelium();
|
||||
|
||||
"done"
|
||||
|
@ -44,5 +44,6 @@ pub fn new(name: &str, cmd: &str) -> Result<()> {
|
||||
pub fn kill(name: &str) -> Result<()> {
|
||||
let cmd = format!("screen -S {} -X quit", name);
|
||||
run_command(&cmd)?;
|
||||
std::thread::sleep(std::time::Duration::from_millis(500));
|
||||
Ok(())
|
||||
}
|
@ -5,6 +5,7 @@
|
||||
use crate::rhai::error::ToRhaiError;
|
||||
use crate::zinit_client as client;
|
||||
use rhai::{Array, Dynamic, Engine, EvalAltResult, Map};
|
||||
use std::path::Path;
|
||||
use serde_json::{json, Value};
|
||||
use tokio::runtime::Runtime;
|
||||
|
||||
@ -55,6 +56,12 @@ fn get_runtime() -> Result<Runtime, Box<EvalAltResult>> {
|
||||
///
|
||||
/// Lists all services managed by Zinit.
|
||||
pub fn zinit_list(socket_path: &str) -> Result<Map, Box<EvalAltResult>> {
|
||||
if !Path::new(socket_path).exists() {
|
||||
return Err(Box::new(EvalAltResult::ErrorRuntime(
|
||||
format!("Zinit socket not found at '{}'", socket_path).into(),
|
||||
rhai::Position::NONE,
|
||||
)));
|
||||
}
|
||||
let rt = get_runtime()?;
|
||||
|
||||
let result = rt.block_on(async { client::list(socket_path).await });
|
||||
|
Loading…
Reference in New Issue
Block a user