X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=os.lisp;h=5b6fff3aa3d90aad02dd8ce57fa88f25c0560f87;hp=2e524416e83e2d06d620437170fb11f7c8d00907;hb=e55fe0dc654bb7cd01e978a7080b6087788f173f;hpb=76d158a36bde53452e8724b2202dd3ccf6c2da40 diff --git a/os.lisp b/os.lisp index 2e52441..5b6fff3 100644 --- a/os.lisp +++ b/os.lisp @@ -135,3 +135,16 @@ returns (VALUES output-string pid)" (error "RUN-SHELL-PROGRAM not implemented for this Lisp") )) + +(defun delete-directory-and-files (dir &key (if-does-not-exist :error) (quiet t) force) + #+allegro (excl:delete-directory-and-files dir :if-does-not-exist if-does-not-exist + :quiet quiet :force force) + #-(or allegro) (declare (ignore force)) + #-(or allegro) (cond + ((probe-directory dir) + (let ((cmd (format nil "rm -rf ~A" (namestring dir)))) + (unless quiet + (format *trace-output* ";; ~A" cmd)) + (command-output cmd))) + ((eq if-does-not-exist :error) + (error "Directory ~A does not exist [delete-directory-and-files]." dir))))