21 lines
480 B
Text
21 lines
480 B
Text
|
(local lfs (require :lfs))
|
||
|
|
||
|
(fn rmtree [pathname]
|
||
|
(case (lfs.symlinkattributes pathname)
|
||
|
nil true
|
||
|
{:mode "directory"}
|
||
|
(do
|
||
|
(each [f (lfs.dir pathname)]
|
||
|
(when (not (or (= f ".") (= f "..")))
|
||
|
(rmtree ( .. pathname "/" f)))
|
||
|
(lfs.rmdir pathname)))
|
||
|
{:mode "file"}
|
||
|
(os.remove pathname)
|
||
|
{:mode "link"}
|
||
|
(os.remove pathname)
|
||
|
unknown
|
||
|
(error (.. "can't remove " pathname " of kind \"" unknown.mode "\""))))
|
||
|
|
||
|
|
||
|
{ : rmtree }
|