X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fos.lisp;h=bd95f05385db385547ab0551ec6662b712f4126c;hb=c4533c02d3f2ebd53178c93de2dee09ca39fe0e7;hp=bcbf65839c0b5a6e39aaab9c0e87714d1c492cc1;hpb=3ade95bab16abe09642554e9cbf56f117f01e507;p=uffi.git diff --git a/src/os.lisp b/src/os.lisp index bcbf658..bd95f05 100644 --- a/src/os.lisp +++ b/src/os.lisp @@ -5,7 +5,7 @@ ;;;; Name: os.lisp ;;;; Purpose: Operating system interface for UFFI ;;;; Programmer: Kevin M. Rosenberg -;;;; Date Started: Sep 2002 +;;;; Date Started: Sep 2002 ;;;; ;;;; $Id$ ;;;; @@ -15,6 +15,22 @@ (in-package #:uffi) + +(defun getenv (var) + "Return the value of the environment variable." + #+allegro (sys::getenv (string var)) + #+clisp (sys::getenv (string var)) + #+cmu (cdr (assoc (string var) ext:*environment-list* :test #'equalp + :key #'string)) + #+gcl (si:getenv (string var)) + #+lispworks (lw:environment-variable (string var)) + #+lucid (lcl:environment-variable (string var)) + #+mcl (ccl::getenv var) + #+sbcl (sb-ext:posix-getenv var) + #-(or allegro clisp cmu gcl lispworks lucid mcl sbcl) + (error 'not-implemented :proc (list 'getenv var))) + + ;; modified from function ASDF -- Copyright Dan Barlow and Contributors (defun run-shell-command (control-string &rest args &key output) @@ -27,27 +43,27 @@ output to *trace-output*. Returns the shell's exit code." (let ((command (apply #'format nil control-string args))) #+sbcl (sb-impl::process-exit-code - (sb-ext:run-program + (sb-ext:run-program "/bin/sh" (list "-c" command) :input nil :output output)) - + #+(or cmu scl) (ext:process-exit-code - (ext:run-program + (ext:run-program "/bin/sh" (list "-c" command) :input nil :output output)) #+allegro (excl:run-shell-command command :input nil :output output) - + #+lispworks (system:call-system-showing-output command :shell-type "/bin/sh" :output-stream output) - + #+clisp ;XXX not exactly *trace-output*, I know (ext:run-shell-command command :output :terminal :wait t) @@ -59,5 +75,5 @@ output to *trace-output*. Returns the shell's exit code." :wait t))) #-(or openmcl clisp lispworks allegro scl cmu sbcl) - (error "RUN-SHELL-PROGRAM not implemented for this Lisp") + (error "RUN-SHELL-PROGRAM not implemented for this Lisp.") ))