]> gitweb.factorcode.org Git - factor.git/commitdiff
xdg: adding a XDG Base Directory Specification.
authorJohn Benediktsson <mrjbq7@gmail.com>
Wed, 4 Nov 2015 18:24:27 +0000 (10:24 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 4 Nov 2015 18:24:27 +0000 (10:24 -0800)
extra/xdg/authors.txt [new file with mode: 0644]
extra/xdg/summary.txt [new file with mode: 0644]
extra/xdg/xdg.factor [new file with mode: 0644]

diff --git a/extra/xdg/authors.txt b/extra/xdg/authors.txt
new file mode 100644 (file)
index 0000000..e091bb8
--- /dev/null
@@ -0,0 +1 @@
+John Benediktsson
diff --git a/extra/xdg/summary.txt b/extra/xdg/summary.txt
new file mode 100644 (file)
index 0000000..ca266a0
--- /dev/null
@@ -0,0 +1 @@
+XDG Base Directory Specification
diff --git a/extra/xdg/xdg.factor b/extra/xdg/xdg.factor
new file mode 100644 (file)
index 0000000..fd3093d
--- /dev/null
@@ -0,0 +1,29 @@
+! Copyright (C) 2015 John Benediktsson
+! See http://factorcode.org/license.txt for BSD license
+
+USING: environment sequences splitting ;
+
+IN: xdg
+
+! http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
+
+: xdg-data-home ( -- path )
+    "XDG_DATA_HOME" os-env [ "~/.local/share" ] when-empty ;
+
+: xdg-config-home ( -- path )
+    "XDG_CONFIG_HOME" os-env [ "~/.config" ] when-empty ;
+
+: xdg-cache-home ( -- path )
+    "XDG_CACHE_HOME" os-env [ "~/.cache" ] when-empty ;
+
+: xdg-data-dirs ( -- paths )
+    "XDG_DATA_DIRS" os-env ":" split harvest
+    [ { "/usr/local/share" "/usr/share" } ] when-empty ;
+
+: xdg-config-dirs ( -- paths )
+    "XDG_CONFIG_DIRS" os-env ":" split harvest
+    [ { "/etc/xdg" } ] when-empty ;
+
+: xdg-runtime-dir ( -- path/f )
+    "XDG_RUNTIME_DIR" os-env ;
+    ! TODO: check runtime secure permissions