83 lines
2.5 KiB
Plaintext
83 lines
2.5 KiB
Plaintext
// This is a sample Rhai script demonstrating the Herodo module functionality
|
|
// It shows the use of file system, process management, and git operations
|
|
|
|
print("===== Herodo Sample Script =====");
|
|
|
|
// File System Operations ===========================================
|
|
print("\n===== File System Operations =====");
|
|
|
|
// Check if directory exists and make it if not
|
|
if !exist("./test_dir") {
|
|
print("Creating test directory...");
|
|
mkdir("./test_dir");
|
|
}
|
|
|
|
// Write a test file
|
|
print("Writing test file...");
|
|
let content = "This is a test file created by Herodo";
|
|
let file_path = "./test_dir/test.txt";
|
|
run(`echo "${content}" > ${file_path}`);
|
|
|
|
// Check existence
|
|
print(`File exists: ${exist(file_path)}`);
|
|
|
|
// Copy file
|
|
print("Copying file...");
|
|
let copy_path = "./test_dir/test_copy.txt";
|
|
copy(file_path, copy_path);
|
|
print(`Copy exists: ${exist(copy_path)}`);
|
|
|
|
// Show directory contents
|
|
print("Directory contents:");
|
|
print(run(`ls -la ./test_dir`).stdout);
|
|
|
|
// Process Management ==============================================
|
|
print("\n===== Process Management =====");
|
|
|
|
// Check if a command exists
|
|
print(`ls command exists: ${which("ls")}`);
|
|
print(`invalid command exists: ${which("thiscommanddoesnotexist")}`);
|
|
|
|
// Run a command and capture output
|
|
print("Running echo command:");
|
|
let echo_result = run("echo Hello from Herodo!");
|
|
print(` stdout: ${echo_result.stdout}`);
|
|
print(` success: ${echo_result.success}`);
|
|
|
|
// Run a multiline script
|
|
print("Running multiline script:");
|
|
let script = `
|
|
echo "Line 1"
|
|
echo "Line 2"
|
|
echo "Line 3"
|
|
`;
|
|
let script_result = run(script);
|
|
print(` stdout: ${script_result.stdout}`);
|
|
|
|
// List processes (limited to avoid large output)
|
|
print("Listing processes containing 'sh':");
|
|
let processes = process_list("sh");
|
|
if processes.len() > 0 {
|
|
print(`Found ${processes.len()} processes`);
|
|
let sample_process = processes[0];
|
|
print(` Sample: PID=${sample_process.pid}, Name=${sample_process.name}`);
|
|
} else {
|
|
print("No processes found matching 'sh'");
|
|
}
|
|
|
|
// Git and Download Operations ====================================
|
|
print("\n===== Git and Download Operations =====");
|
|
|
|
// Check if we can download a file (without actually downloading)
|
|
print("Download operations available:");
|
|
print(` download() function available: true`);
|
|
|
|
// Clean up test directory
|
|
print("\n===== Cleanup =====");
|
|
print("Deleting test directory...");
|
|
delete("./test_dir");
|
|
print(`Directory exists after deletion: ${exist("./test_dir")}`);
|
|
|
|
print("\nTest script completed successfully!");
|
|
"Success" // Return value
|