;; function copied from dim-ports.al by Dimitri Fontaine ;; http://git.naquadah.org/?p=~dim/emacs.d.git;a=summary (defun lsb-release (&optional property) "Parse lsb-release output and return an alist, or the value for the given property" (when (file-executable-p "/usr/bin/lsb_release") (let* ((lsbr (shell-command-to-string "/usr/bin/lsb_release -a 2>/dev/null")) (props (split-string lsbr "[:\n]" t)) (kv)) (while (>= (length props) 2) ;; Don't keep extra spaces. This way seems like the easy one in elisp. (let ((key (mapconcat 'identity (split-string (car props)) " ")) (val (mapconcat 'identity (split-string (cadr props)) " "))) (setq kv (add-to-list 'kv (cons key val))) (setq props (cddr props)))) (if property (cdr (assoc property (lsb-release))) kv)))) ;; function copied from dim-ports.al by Dimitri Fontaine ;; http://git.naquadah.org/?p=~dim/emacs.d.git;a=summary (defmacro when-running-ubuntu (&rest body) "eval body only when running under Ubuntu" (when (equal (lsb-release "Distributor ID") "Ubuntu") ,@body)) ;; function adapted from dim-ports.al by Dimitri Fontaine ;; http://git.naquadah.org/?p=~dim/emacs.d.git;a=summary (defmacro when-running-fedora (&rest body) "eval body only when running under Fedora" (when (equal (lsb-release "Distributor ID") "Fedora") ,@body))