New feature: attributes. With attributes and set-attributes calls user may associate any data to path. Data could be for example property list or association list.
Here is a sample code:
(clufs:create clufs '(file-1))
(set-attributes '((property-1 1) (property-2 'x)) clufs '(file-1))
(attributes clufs '(file-1))
; => '((property-1 1) (property-2 'x))
New feature stat call. stat returns created-at and modified-at timestamps.
New features: file-p, directory-p, directory-empty-p, delete-file, delete-dir and with-clufs.
Added more tests and enhanced error handling.
Added build utilities load-clufs and test-clufs for loading clufs and running all unit tests.
Added directory function to get directory contents as a list.
Initial version of clufs released. The release contains initial implementation of directory and file creation. Files can opened for reading and writing.
Sample session:
(in-package :cl-user)
(clufs:mkfs "test.clufs")
(let ((clufs (clufs:mount "test.clufs")))
(clufs:mkdir clufs '(my-test-dir))
(clufs:create clufs '(my-test-dir file))
(let ((stream (clufs:open clufs '(my-test-dir file))))
(prin1 "Hello World!" stream)
(clufs:sync clufs)
(file-position stream 0)
(read stream)))
; => "Hello World!"