#!/usr/bin/env bash # ---------------------------------------------------------------------- # INITIALIZE the HAMACS SYSTEM # ---------------------------------------------------------------------- HAMACS_DIR=$(cd "$(dirname "$0")"; pwd) HAMACS_DEST=$HOME/.emacs.hamacs # A symlink to ~/.emacs.d mkdir -p $HAMACS_DEST for LINK in snippets templates elisp do rm -rf $HAMACS_DEST/$LINK ln -s --force $HAMACS_DIR/$LINK $HAMACS_DEST done cat > $HAMACS_DEST/init.el <<EOF ;;; init.el --- Hamacs Init -*- lexical-binding: t; -*- ;; ;;; Commentary: ;; ;; This is my Emacs Bootloader. Simply put, I initialize the package management ;; system, and then tangle my literate files. This simple idea came from ;; https://github.com/susamn/dotfiles ;; ;;; Code: ;; We'll be using straight. So, we don't want duplicated package loading: (setq package-enable-at-startup nil) ;; While I would rather program my configurations, sometimes the Emacs ;; menu system is “good enough”, but I want it in its own file: (setq custom-file (expand-file-name "custom.el" user-emacs-directory)) (when (file-exists-p custom-file) (load custom-file)) ;; While this path should come from the shell, there seems to be a ;; condition where I need to set this so that Emacs can pull our my ;; compiled files. (add-to-list 'exec-path "/usr/local/bin") (setenv "PATH" (concat "/usr/local/bin:" (getenv "PATH"))) (defvar hamacs-source-dir "$HAMACS_DIR" "Where we be.") ;; Let's rock: (org-babel-load-file "$HAMACS_DIR/bootstrap.org") (provide 'init.el) ;;; init ends here EOF echo Created $HAMACS_DEST/init.el