sal/examples/_archive/package_management.rhai
2025-05-08 09:54:20 +03:00

113 lines
3.6 KiB
Plaintext

// Example script demonstrating the mypackage management functions
// Set debug mode to true to see detailed output
package_set_debug(true);
// Function to demonstrate mypackage management on Ubuntu
fn demo_ubuntu() {
print("Demonstrating mypackage management on Ubuntu...");
// Update mypackage lists
print("Updating mypackage lists...");
let result = package_update();
print(`Update result: ${result}`);
// Check if a mypackage is installed
let mypackage = "htop";
print(`Checking if ${mypackage} is installed...`);
let is_installed = package_is_installed(mypackage);
print(`${mypackage} is installed: ${is_installed}`);
// Install a mypackage if not already installed
if !is_installed {
print(`Installing ${mypackage}...`);
let install_result = package_install(mypackage);
print(`Install result: ${install_result}`);
}
// List installed packages (limited to first 5 for brevity)
print("Listing installed packages (first 5)...");
let packages = package_list();
for i in 0..min(5, packages.len()) {
print(` - ${packages[i]}`);
}
// Search for packages
let search_term = "editor";
print(`Searching for packages with term '${search_term}'...`);
let search_results = package_search(search_term);
print(`Found ${search_results.len()} packages. First 5 results:`);
for i in 0..min(5, search_results.len()) {
print(` - ${search_results[i]}`);
}
// Remove the mypackage if we installed it
if !is_installed {
print(`Removing ${mypackage}...`);
let remove_result = package_remove(mypackage);
print(`Remove result: ${remove_result}`);
}
}
// Function to demonstrate mypackage management on macOS
fn demo_macos() {
print("Demonstrating mypackage management on macOS...");
// Update mypackage lists
print("Updating mypackage lists...");
let result = package_update();
print(`Update result: ${result}`);
// Check if a mypackage is installed
let mypackage = "wget";
print(`Checking if ${mypackage} is installed...`);
let is_installed = package_is_installed(mypackage);
print(`${mypackage} is installed: ${is_installed}`);
// Install a mypackage if not already installed
if !is_installed {
print(`Installing ${mypackage}...`);
let install_result = package_install(mypackage);
print(`Install result: ${install_result}`);
}
// List installed packages (limited to first 5 for brevity)
print("Listing installed packages (first 5)...");
let packages = package_list();
for i in 0..min(5, packages.len()) {
print(` - ${packages[i]}`);
}
// Search for packages
let search_term = "editor";
print(`Searching for packages with term '${search_term}'...`);
let search_results = package_search(search_term);
print(`Found ${search_results.len()} packages. First 5 results:`);
for i in 0..min(5, search_results.len()) {
print(` - ${search_results[i]}`);
}
// Remove the mypackage if we installed it
if !is_installed {
print(`Removing ${mypackage}...`);
let remove_result = package_remove(mypackage);
print(`Remove result: ${remove_result}`);
}
}
// Detect platform and run the appropriate demo
fn main() {
// Create a PackHero instance to detect the platform
let platform = package_platform();
if platform == "Ubuntu" {
demo_ubuntu();
} else if platform == "MacOS" {
demo_macos();
} else {
print(`Unsupported platform: ${platform}`);
}
}
// Run the main function
main();