Current section
Files
Jump to
Current section
Files
src/dirs-lin.lfe
(defmodule dirs-lin
(export
(assemble 1)))
(defun assemble
(('home) (dirs-common:home))
(('cache) (env-or-default "XDG_CACHE_HOME" (dirs-common:home-subdir '(".cache"))))
(('config) (config))
(('config-local) (config))
(('data) (data))
(('data-local) (data))
(('executable) (env-or-default "XDG_BIN_DIR" (dirs-common:home-subdir '(".local" "bin"))))
(('preference) (config))
(('runtime) (env-or-default "XDG_RUNTIME_DIR" 'undefined))
(('state) (env-or-default "XDG_STATE_DIR" (dirs-common:home-subdir '(".local" "state"))))
(('audio) (env-or-default "XDG_MUSIC_DIR" 'undefined))
(('desktop) (env-or-default "XDG_DESKTOP_DIR" 'undefined))
(('document) (env-or-default "XDG_DOCUMENTS_DIR" 'undefined))
(('download) (env-or-default "XDG_DOWNLOAD_DIR" 'undefined))
(('font) (filename:join (list (data) "fonts")))
(('picture) (env-or-default "XDG_PICTURES_DIR" 'undefined))
(('public) (env-or-default "XDG_PUBLICSHARE_DIR" 'undefined))
(('template) (env-or-default "XDG_TEMPLATES_DIR" 'undefined))
(('video) (env-or-default "XDG_VIDEOS_DIR" 'undefined)))
;;; Private Functions
(defun config ()
(env-or-default "XDG_CONFIG_HOME" (dirs-common:home-subdir ".config")))
(defun data ()
(env-or-default "XDG_DATA_HOME" (dirs-common:home-subdir '(".local" "share"))))
(defun env-or-default (env-var default)
(case (os:getenv env-var)
("" default)
(val (if (dirs-common:abs-path? val)
val
default))))