...
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