From e6ad8129cc854dac38940acb24e3a07cd0cd7b56 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 13 May 2020 13:32:14 -0700 Subject: Re-namespace general scheme code to bs --- bs/shell.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 bs/shell.scm (limited to 'bs/shell.scm') diff --git a/bs/shell.scm b/bs/shell.scm new file mode 100644 index 0000000..8578f72 --- /dev/null +++ b/bs/shell.scm @@ -0,0 +1,32 @@ +(define-module (bs 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)) -- cgit v1.2.3