#!/usr/bin/expect # Configure timeout for expect commands to prevent hanging set timeout 10 # Initialize variables to hold the file argument and the modified argv set file_arg "" set modified_argv [] # Loop through each argument in $argv foreach arg $argv { # Check if the argument is a file that exists and file_arg is not yet set if {[file exists $arg] && $file_arg eq ""} { # If it exists and no file_arg has been set, use this as the file_arg set file_arg $arg } elseif {$arg ne "--debugable"} { # Exclude the --breakable argument # Otherwise, if the argument is not --breakable, add it to the modified_argv list lappend modified_argv $arg } } # Convert modified_argv list back to a string with spaces set args_for_metta [join $modified_argv " "] # Spawn the MeTTa REPL with debug and REPL mode, omitting the file path from argv # clear; spawn sh -c "MeTTa $args_for_metta --repl " # Send initial commands to MeTTa REPL. Use \r to simulate ENTER key. send "prolog.\r(repl,maybe_halt(7)).\r" # Continue with REPL interaction #send "repl.\r" #expect "metta &self +>" # Proceed only if a file argument has been found if {$file_arg ne ""} { # Sending a command to import a file, using the found file argument send "!(import! &self $file_arg)\r" } else { } # Hand over control to the user for interactive use interact #!/usr/bin/expect