;;; init-straight.el -*- lexical-binding: t; -*-

(defun syd-initialise-straight-options ()
  (setq
   ;; Improves Straight's startup time.  Instead of checking for modifications
   ;; on init, changes will only be detected when the file is saved from within
   ;; Emacs (with `save-buffer', specifically!).
   straight-check-for-modifications '(check-on-save find-when-checking)))

;; Bootstrap Straight.el
(defun syd-initialise-straight ()
  (defvar bootstrap-version)

  (syd-initialise-straight-options)

  (setq straight-base-dir
        (or (getenv "EMACS_STRAIGHT_BASE_DIR")
            (error "Cannot initialise straight: $EMACS_STRAIGHT_BASE_DIR is undefined!")))

  (let ((bootstrap-file
         (file-name-concat straight-base-dir
                           "straight/repos/straight.el/bootstrap.el"))
        (bootstrap-version 7))
    (unless (file-exists-p bootstrap-file)
      (message "Could not find Straight's bootstrap file.  Attempting to download it now.")
      (let* ((url "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el")
             (url-buffer (url-retrieve-synchronously url 'silent 'inhibit-cookies)))
        (with-current-buffer url-buffer
          (goto-char (point-max))
          (eval-print-last-sexp))))
    (load bootstrap-file nil 'nomessage))

  (setq straight-use-package-by-default t))
