chibi-scheme/lib/chibi/shell.sld
2022-07-29 18:50:42 +09:00

29 lines
1.1 KiB
Scheme

(define-library (chibi shell)
(import (scheme base) (scheme bitwise) (scheme char) (scheme cxr)
(scheme list) (scheme write) (srfi 130)
(chibi io) (chibi filesystem) (chibi process)
(only (chibi) port-fileno define-auxiliary-syntax))
(export shell shell& shell-pipe call-with-shell-io
shell->string shell->string-list
shell->sexp shell->sexp-list
shell-if shell-and shell-or shell-do
in< out> err> out>> err>> >< >> <<)
(begin
(define shell-fork fork)
(define shell-exec execute)
(define shell-exit exit)
(define (shell-wait pid)
(cadr (waitpid pid 0)))
(define (shell-create-pipe) (apply cons (open-pipe)))
(define shell-dup duplicate-file-descriptor-to)
(define shell-open-input open-input-file-descriptor)
(define shell-open-output open-output-file-descriptor)
(define shell-close close-file-descriptor)
(define (shell-port->fd port)
(port-fileno port))
(define (shell-fd->input-port fd)
(open-input-file-descriptor fd))
(define (shell-fd->output-port fd)
(open-output-file-descriptor fd)))
(include "shell.scm"))