emacs/old-config/pkgs/opam-init.el
2018-04-07 10:54:04 +08:00

49 lines
1.3 KiB
EmacsLisp

(defvar opam nil)
(defvar git-opam-url)
(defvar opam-vars '("lib" "libexec" "bin"
"sbin" "toplevel"
"share" "share_root"
"etc" "doc" "stublibs"))
(defvar utop nil
"the full path of utop")
(setf git-opam-url "https://github.com/ocaml/opam.git")
(defun opam-config-var (var)
(let ((command-string (concat "opam config var " var)))
(substring (shell-command-to-string command-string)
0 -1)))
(defun opam-config-env ()
(dolist (var (car (read-from-string
(shell-command-to-string
"opam config env --sexp"))))
(let ((var-name (car var))
(var-val (cadr var)))
(setenv var-name
(let ((old-v (getenv var-name)))
(if old-v
(concat old-v ":" var-val)
var-val)))))
(add-to-list 'load-path
(concat (opam-config-var "share")
"/emacs/site-lisp/")))
(defun check-opam ()
(if (not (which "opam"))
(progn (message "Please install opam")
nil)
(progn (opam-config-env)
(setq utop (which "utop"))
(unless utop
(message "Please install utop with (opam install utop)"))
utop)))
(register-mypkg
(list :name "opam"
:enabled (check-opam)
:packages nil
:init #'(lambda ()
(setq utop-command (concat utop " -emacs"))
(autoload 'utop "utop" "toplevel of ocaml" t))))