summaryrefslogtreecommitdiffstats
path: root/roles/obs/tasks/emacs.yml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/obs/tasks/emacs.yml')
-rw-r--r--roles/obs/tasks/emacs.yml39
1 files changed, 39 insertions, 0 deletions
diff --git a/roles/obs/tasks/emacs.yml b/roles/obs/tasks/emacs.yml
new file mode 100644
index 0000000..0b013b3
--- /dev/null
+++ b/roles/obs/tasks/emacs.yml
@@ -0,0 +1,39 @@
+- name: Check out emacsconf-el
+ ansible.builtin.git:
+ repo: https://git.emacsconf.org/emacsconf-el
+ dest: "~{{ emacsconf_user }}/emacsconf-el"
+ register: elisp
+ failed_when:
+ - elisp.failed
+ - not 'Local modifications exist in repository' in elisp.msg
+ - not 'Failed to checkout branch' in elisp.msg
+ debugger: on_failed
+- name: Install Emacs packages
+ become_user: "{{ emacsconf_user }}"
+ shell: |
+ emacs --batch --exec "(progn (require 'package)
+ (let ((packages (seq-remove #'package-installed-p '({% for package in packages %}{{ package }} {% endfor %}))))
+ (when packages
+ (package-refresh-contents)
+ (mapc #'package-install packages))))"
+ vars:
+ packages:
+ - modus-themes
+ - vertico
+ - orderless
+- name: Set up Emacs configuration for interactive editing
+ template:
+ src: emacsconf-stream-config.el
+ dest: "{{ emacs_config_dir }}/emacsconf-stream-config.el"
+ owner: "{{ emacsconf_user }}"
+ group: "{{ emacsconf_group }}"
+- name: Add to Emacs configuration
+ lineinfile:
+ dest: "{{ emacs_config_dir }}/init.el"
+ state: present
+ regexp: "emacsconf-stream-config"
+ line: "(load-file \"{{ emacs_config_dir }}/emacsconf-stream-config.el\")"
+ owner: "{{ emacsconf_user }}"
+ group: "{{ emacsconf_group }}"
+ create: yes
+