-
Notifications
You must be signed in to change notification settings - Fork 23
/
path.lisp
32 lines (20 loc) · 1006 Bytes
/
path.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
(in-package :cl-fad)
(defmacro defalias (name args realname)
`(progn
(defun ,name ,args
,(if (eql '&rest (first args))
`(apply #',realname ,(second args))
`(,realname ,@args)))
(define-compiler-macro ,name (&rest args)
(list* ',realname args))))
(defalias path:dirname (pathname) cl-fad:pathname-directory-pathname)
(defun path:basename (pathname) (pathname (file-namestring pathname)))
(defalias path:-e (pathname) cl-fad:file-exists-p)
(defalias path:-d (directory) cl-fad:directory-exists-p)
(defalias path:catfile (&rest pathnames) cl-fad:merge-pathnames-as-file)
(defalias path:catdir (&rest pathnames) cl-fad:merge-pathnames-as-directory)
(defalias path:= (a b) cl-fad:pathname-equal)
(defalias path:absolute-p (pathname) cl-fad:pathname-absolute-p)
(defalias path:relative-p (pathname) cl-fad:pathname-relative-p)
(defalias path:root-p (pathname) cl-fad:pathname-root-p)
(defalias path:rm-r (pathname) cl-fad:delete-directory-and-files)