implemented zinit-client for integration with Rhai-scripts
This commit is contained in:
70
examples/zinit/zinit_basic.rhai
Normal file
70
examples/zinit/zinit_basic.rhai
Normal file
@@ -0,0 +1,70 @@
|
||||
// Basic example of using the Zinit client in Rhai
|
||||
|
||||
// Socket path for Zinit
|
||||
let socket_path = "/var/run/zinit.sock";
|
||||
|
||||
// List all services
|
||||
print("Listing all services:");
|
||||
let services = zinit_list(socket_path);
|
||||
|
||||
for (name, state) in services {
|
||||
print(`${name}: ${state}`);
|
||||
}
|
||||
|
||||
// Get status of a specific service
|
||||
let service_name = "example-service";
|
||||
print(`\nGetting status for ${service_name}:`);
|
||||
|
||||
try {
|
||||
let status = zinit_status(socket_path, service_name);
|
||||
print(`Service: ${status.name}`);
|
||||
print(`PID: ${status.pid}`);
|
||||
print(`State: ${status.state}`);
|
||||
print(`Target: ${status.target}`);
|
||||
print("Dependencies:");
|
||||
|
||||
for (dep, state) in status.after {
|
||||
print(` ${dep}: ${state}`);
|
||||
}
|
||||
} catch(err) {
|
||||
print(`Error getting status: ${err}`);
|
||||
}
|
||||
|
||||
// Create a new service
|
||||
print("\nCreating a new service:");
|
||||
let new_service = "rhai-test-service";
|
||||
let exec_command = "echo 'Hello from Rhai'";
|
||||
let oneshot = true;
|
||||
|
||||
try {
|
||||
let result = zinit_create_service(socket_path, new_service, exec_command, oneshot);
|
||||
print(`Service created: ${result}`);
|
||||
|
||||
// Monitor the service
|
||||
print("\nMonitoring the service:");
|
||||
let monitor_result = zinit_monitor(socket_path, new_service);
|
||||
print(`Service monitored: ${monitor_result}`);
|
||||
|
||||
// Start the service
|
||||
print("\nStarting the service:");
|
||||
let start_result = zinit_start(socket_path, new_service);
|
||||
print(`Service started: ${start_result}`);
|
||||
|
||||
// Get logs
|
||||
print("\nGetting logs:");
|
||||
let logs = zinit_logs(socket_path, new_service);
|
||||
|
||||
for log in logs {
|
||||
print(log);
|
||||
}
|
||||
|
||||
// Clean up
|
||||
print("\nCleaning up:");
|
||||
let forget_result = zinit_forget(socket_path, new_service);
|
||||
print(`Service forgotten: ${forget_result}`);
|
||||
|
||||
let delete_result = zinit_delete_service(socket_path, new_service);
|
||||
print(`Service deleted: ${delete_result}`);
|
||||
} catch(err) {
|
||||
print(`Error: ${err}`);
|
||||
}
|
Reference in New Issue
Block a user