Reduce code complexity for fileops

This commit is contained in:
Marcus Kammer 2024-06-14 17:47:26 +02:00
parent b13b797315
commit 242da4e070

View file

@ -2,30 +2,23 @@
(defun base-dir ()
(let ((os (uiop:detect-os)))
(uiop:parse-native-namestring
(cond ((eq os :os-windows)
(format nil "~a/" (uiop:getenv "LOCALAPPDATA")))
((eq os :os-unix)
(format nil "~a" (uiop:merge-pathnames*
".local/share/"
(format nil
"~a/"
(uiop:getenv "HOME")))))
(format nil "~a/.local/share/" (user-homedir-pathname)))
((eq os :os-macos)
(format nil "~a" (uiop:merge-pathnames*
"Library/Application Support/"
(format nil
"~a/"
(uiop:getenv "HOME")))))
(format nil "~a/Library/Application Support/" (user-homedir-pathname)))
(t (error "Unsupported OS")))))
(t (error "Unsupported OS"))))))
(defun app-dir ()
(uiop:merge-pathnames* "ml-survey/" (base-dir)))
(uiop:merge-pathnames* #P"ml-survey/" (base-dir)))
(defun data-dir ()
(uiop:merge-pathnames* "data/surveys/" (app-dir)))
(uiop:merge-pathnames* #P"data/surveys/" (app-dir)))
(defun ensure-data-dir ()
(let ((data-dir (data-dir)))