// nerdctl_test.rhai // Tests the nerdctl wrapper functionality without requiring a running containerd daemon // Check if nerdctl is installed let nerdctl_exists = which("nerdctl"); println(`Nerdctl exists: ${nerdctl_exists}`); // Test creating run options println("\nTesting run options creation:"); let run_options = new_run_options(); println(`Default run options created: ${run_options}`); println(`- name: ${run_options.name}`); println(`- detach: ${run_options.detach}`); println(`- ports: ${run_options.ports}`); println(`- snapshotter: ${run_options.snapshotter}`); // Modify run options println("\nModifying run options:"); run_options.name = "test-container"; run_options.detach = false; run_options.ports = ["8080:80", "8443:443"]; run_options.snapshotter = "overlayfs"; println(`Modified run options: ${run_options}`); println(`- name: ${run_options.name}`); println(`- detach: ${run_options.detach}`); println(`- ports: ${run_options.ports}`); println(`- snapshotter: ${run_options.snapshotter}`); // Test function availability println("\nTesting function availability:"); let functions = [ "nerdctl_run", "nerdctl_run_with_name", "nerdctl_run_with_port", "nerdctl_exec", "nerdctl_copy", "nerdctl_stop", "nerdctl_remove", "nerdctl_list", "nerdctl_images", "nerdctl_image_remove", "nerdctl_image_push", "nerdctl_image_tag", "nerdctl_image_pull", "nerdctl_image_commit", "nerdctl_image_build" ]; // Try to access each function (this will throw an error if the function doesn't exist) for func in functions { let exists = is_function_registered(func); println(`Function ${func} registered: ${exists}`); } // Helper function to check if a function is registered fn is_function_registered(name) { try { // This will throw an error if the function doesn't exist eval(`${name}`); return true; } catch { return false; } } "Nerdctl wrapper test completed successfully!"