...
This commit is contained in:
66
src/examples/git_test.rs
Normal file
66
src/examples/git_test.rs
Normal file
@@ -0,0 +1,66 @@
|
||||
//! Example of using the Git module with Rhai
|
||||
//!
|
||||
//! This example demonstrates how to use the Git module functions
|
||||
//! through the Rhai scripting language.
|
||||
|
||||
use sal::rhai::{self, Engine};
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// Create a new Rhai engine
|
||||
let mut engine = Engine::new();
|
||||
|
||||
// Register SAL functions with the engine
|
||||
rhai::register(&mut engine)?;
|
||||
|
||||
// Run a Rhai script that uses Git functions
|
||||
let script = r#"
|
||||
// Print a header
|
||||
print("=== Testing Git Module Functions ===\n");
|
||||
|
||||
// Test git_list function
|
||||
print("Listing git repositories...");
|
||||
let repos = git_list();
|
||||
print(`Found ${repos.len()} repositories`);
|
||||
|
||||
// Print the first few repositories
|
||||
if repos.len() > 0 {
|
||||
print("First few repositories:");
|
||||
let count = if repos.len() > 3 { 3 } else { repos.len() };
|
||||
for i in range(0, count) {
|
||||
print(` - ${repos[i]}`);
|
||||
}
|
||||
}
|
||||
|
||||
// Test find_matching_repos function
|
||||
if repos.len() > 0 {
|
||||
print("\nTesting repository search...");
|
||||
// Extract a part of the first repo name to search for
|
||||
let repo_path = repos[0];
|
||||
let parts = repo_path.split("/");
|
||||
let repo_name = parts[parts.len() - 1];
|
||||
|
||||
print(`Searching for repositories containing "${repo_name}"`);
|
||||
let matching = find_matching_repos(repo_name);
|
||||
|
||||
print(`Found ${matching.len()} matching repositories`);
|
||||
for repo in matching {
|
||||
print(` - ${repo}`);
|
||||
}
|
||||
|
||||
// Check if a repository has changes
|
||||
print("\nChecking for changes in repository...");
|
||||
let has_changes = git_has_changes(repo_path);
|
||||
print(`Repository ${repo_path} has changes: ${has_changes}`);
|
||||
}
|
||||
|
||||
print("\n=== Git Module Test Complete ===");
|
||||
"#;
|
||||
|
||||
// Evaluate the script
|
||||
match engine.eval::<()>(script) {
|
||||
Ok(_) => println!("Script executed successfully"),
|
||||
Err(e) => eprintln!("Script execution error: {}", e),
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
66
src/examples/rhai_git_example.rs
Normal file
66
src/examples/rhai_git_example.rs
Normal file
@@ -0,0 +1,66 @@
|
||||
//! Example of using the Git module with Rhai
|
||||
//!
|
||||
//! This example demonstrates how to use the Git module functions
|
||||
//! through the Rhai scripting language.
|
||||
|
||||
use sal::rhai::{self, Engine};
|
||||
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// Create a new Rhai engine
|
||||
let mut engine = Engine::new();
|
||||
|
||||
// Register SAL functions with the engine
|
||||
rhai::register(&mut engine)?;
|
||||
|
||||
// Run a Rhai script that uses Git functions
|
||||
let script = r#"
|
||||
// Print a header
|
||||
print("=== Testing Git Module Functions ===\n");
|
||||
|
||||
// Test git_list function
|
||||
print("Listing git repositories...");
|
||||
let repos = git_list();
|
||||
print(`Found ${repos.len()} repositories`);
|
||||
|
||||
// Print the first few repositories
|
||||
if repos.len() > 0 {
|
||||
print("First few repositories:");
|
||||
let count = if repos.len() > 3 { 3 } else { repos.len() };
|
||||
for i in range(0, count) {
|
||||
print(` - ${repos[i]}`);
|
||||
}
|
||||
}
|
||||
|
||||
// Test find_matching_repos function
|
||||
if repos.len() > 0 {
|
||||
print("\nTesting repository search...");
|
||||
// Extract a part of the first repo name to search for
|
||||
let repo_path = repos[0];
|
||||
let parts = repo_path.split("/");
|
||||
let repo_name = parts[parts.len() - 1];
|
||||
|
||||
print(`Searching for repositories containing "${repo_name}"`);
|
||||
let matching = find_matching_repos(repo_name);
|
||||
|
||||
print(`Found ${matching.len()} matching repositories`);
|
||||
for repo in matching {
|
||||
print(` - ${repo}`);
|
||||
}
|
||||
|
||||
// Check if a repository has changes
|
||||
print("\nChecking for changes in repository...");
|
||||
let has_changes = git_has_changes(repo_path);
|
||||
print(`Repository ${repo_path} has changes: ${has_changes}`);
|
||||
}
|
||||
|
||||
print("\n=== Git Module Test Complete ===");
|
||||
"#;
|
||||
|
||||
// Evaluate the script
|
||||
match engine.eval::<()>(script) {
|
||||
Ok(_) => println!("Script executed successfully"),
|
||||
Err(e) => eprintln!("Script execution error: {}", e),
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
Reference in New Issue
Block a user