(define-module (Alpha Shell) #:use-module ((ice-9 popen) #:prefix popen/) #:use-module ((ice-9 rdelim) #:prefix rdelim/) #:use-module ((ice-9 ftw) #:prefix ftw/) #:export (exec stream pwd ls cd)) (define (exec cmd) (let* ((port (popen/open-input-pipe cmd)) (ret (read port))) (popen/close-pipe port) ret)) (define (stream cmd) (let* ((port (popen/open-input-pipe cmd)) (_ (setvbuf port 'none)) (ret (rdelim/read-string port))) (flush-all-ports) (popen/close-pipe port) ret)) (define pwd getcwd) (define (ls) (ftw/scandir (getcwd))) (define (cd path) (chdir path) (ls))