(define (standard-command-plugin-completer command args) #f) (define (standard-command-plugin-evaluater command args) (run/strings (,command ,@args))) (define standard-command-plugin (make-command-plugin #f standard-command-plugin-completer standard-command-plugin-evaluater)) ;; some common commands (define no-completer (lambda args #f)) (register-plugin! (make-command-plugin "ls" no-completer (lambda (command args) (directory-files)))) (register-plugin! (make-command-plugin "pwd" no-completer (lambda (command args) (cwd)))) (register-plugin! (make-command-plugin "cd" no-completer (lambda (command args) (chdir (resolve-file-name (if (null? args) "~" (car args)))) (cwd)))) (register-plugin! (make-command-plugin "setenv" no-completer (lambda (command args) (setenv (car args) (cadr args))))) (register-plugin! (make-command-plugin "getenv" no-completer (lambda (command args) (getenv (car args))))) (register-plugin! (make-command-plugin "printenv" no-completer (lambda (command args) (env->alist)))) (register-plugin! (make-command-plugin "exit" no-completer (lambda (command args) (exit (if (null? args) 0 (string->number (car args)))))))