move rmtree to anoia library

This commit is contained in:
Daniel Barlow 2023-09-08 21:03:18 +01:00
parent eaa45906ff
commit 4e9227dff3
2 changed files with 21 additions and 18 deletions

20
pkgs/anoia/fs.fnl Normal file
View file

@ -0,0 +1,20 @@
(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 }

View file

@ -1,23 +1,6 @@
(local { : split : merge : mkdir } (require :anoia)) (local { : split : merge : mkdir } (require :anoia))
(local { : view } (require :fennel)) (local { : view } (require :fennel))
(local lfs (require :lfs)) (local { : rmtree } (require :anoia.fs))
(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 "\""))))
(local state-directory (assert (os.getenv "SERVICE_STATE"))) (local state-directory (assert (os.getenv "SERVICE_STATE")))
(mkdir state-directory) (mkdir state-directory)