Files
nix-straight.el/setup.el
2020-01-25 19:39:53 +01:00

44 lines
1.8 KiB
EmacsLisp

;;; -*- lexical-binding: t; -*-
(require 'json)
(require 'straight)
(defun nix-straight-get-used-packages (init-file)
(let ((nix-straight--packages nil))
(advice-add 'straight-use-package
:override (lambda (recipe &rest r)
(let ((pkg (if (listp recipe)
(car recipe)
recipe)))
(message "straight-use-package %s %s" recipe r)
(add-to-list 'nix-straight--packages pkg))))
(advice-add 'straight-recipes-retrieve
:override (lambda (pkg)
(list)))
(advice-add 'straight-use-recipes
:override (lambda (&rest r)
(message "straight-use-recipes %s" r)))
(load init-file nil nil t)
(princ (if (null nix-straight--packages)
"[]"
(json-encode nix-straight--packages)))
nix-straight--packages))
(defun nix-straight-build-packages (init-file)
(setq straight-default-files-directive '("*" (:exclude "*.elc")))
(advice-add 'straight-vc-git-clone
:override (lambda (&rest r)))
(advice-add 'straight-recipes-retrieve
:override (lambda (pkg &rest r)
(message " Crafting recipe %s" pkg)
(let ((pkg-name (symbol-name pkg)))
(if (file-exists-p (straight--repos-dir pkg-name))
(list pkg :local-repo pkg-name :repo pkg-name :type 'git)
(message " --> Repo directory for package not exists, assuming built-in; %s" pkg)
(list pkg :type 'built-in)))))
(load init-file nil nil t))
(provide 'setup)
;;; setup.el ends here