diff options
Diffstat (limited to '')
| -rw-r--r-- | roles/wiki-edit/defaults/main.yml | 7 | ||||
| -rw-r--r-- | roles/wiki-edit/tasks/main.yaml | 64 | ||||
| -rw-r--r-- | roles/wiki-edit/templates/emacsconf-edit.el | 32 | ||||
| -rw-r--r-- | roles/wiki-publish/defaults/main.yml | 7 | ||||
| -rw-r--r-- | roles/wiki-publish/tasks/main.yml | 71 | ||||
| -rw-r--r-- | roles/wiki-publish/templates/emacsconf-config.el | 19 | ||||
| -rw-r--r-- | roles/wiki/defaults/main.yml | 21 | ||||
| -rwxr-xr-x | roles/wiki/templates/htmlscrubber.pm | 2 | ||||
| -rw-r--r-- | roles/wiki/templates/supervisord.conf | 5 | 
9 files changed, 173 insertions, 55 deletions
| diff --git a/roles/wiki-edit/defaults/main.yml b/roles/wiki-edit/defaults/main.yml new file mode 100644 index 0000000..ea0fbdb --- /dev/null +++ b/roles/wiki-edit/defaults/main.yml @@ -0,0 +1,7 @@ +emacsconf_edit_packages: +  - consult +  - embark +  - embark-consult +  - vertico +  - magit +  - modus-themes diff --git a/roles/wiki-edit/tasks/main.yaml b/roles/wiki-edit/tasks/main.yaml index f7eb650..f77535f 100644 --- a/roles/wiki-edit/tasks/main.yaml +++ b/roles/wiki-edit/tasks/main.yaml @@ -1,55 +1,11 @@  --- -- name: Set up SSH directory -  ansible.builtin.file: -    path: /home/ikiwiki/.ssh -    state: directory -    mode: '0700' -- name: Install SSH key for EmacsConf wiki -  ansible.builtin.get_url: -    url: https://emacsconf.org/id_rsa_anon_git_emacsconf -    dest: /home/ikiwiki/.ssh/id_rsa_anon_git_emacsconf -    mode: '0600' -    owner: 'ikiwiki' -- name: Set up packages -  become: yes -  block: -    - name: Add snapshot repository -      ansible.builtin.apt_repository: -        repo: deb http://emacs.ganneff.de/ buster main -    - name: Remove old package -      ansible.builtin.apt: -        name: emacs -        state: absent -    - name: Install Emacs snapshot -      ansible.builtin.apt: -        name: emacs-snapshot-nox -        state: present -- name: Set up or update repositories -  tags: publish -  block: -    - name: Check out wiki repository -      ansible.builtin.git: -        repo: git://git.emacsconf.org/emacsconf-wiki -        dest: ~/emacsconf-wiki -    - name: Check out emacsconf-el -      ansible.builtin.git: -        repo: git@git.emacsconf.org:pub/emacsconf-el -        dest: ~/emacsconf-el -      register: elisp -    - name: Check out emacsconf-2022-private -      ansible.builtin.git: -        repo: git@git.emacsconf.org:emacsconf-2022-private -        dest: ~/emacsconf-2022-private -      register: private -- name: Publish -  tags: publish -  block: -    - name: Publish the schedule -      command: emacs -l ~/.emacs.d/init.el --batch --exec '(emacsconf-generate-main-schedule)' -      when: force_publish or ((private.changed or elisp.changed) and slug is not defined) -    - name: Update a specific talk's nav page -      tags: publish-talk -      command: emacs -l ~/.emacs.d/init.el --batch --exec '(emacsconf-with-talk-heading "{{ slug }}" (emacsconf-update-talk))' -      when: slug is defined -    - name: Commit the wiki and push -      shell: cd ~/emacsconf-wiki; git commit -m 'Update from ansible' -a; git push +- name: Set up Emacs configuration for interactive editing +  template: +    src: emacsconf-edit.el +    dest: "{{ emacs_config_dir }}/emacsconf-edit.el" +- name: Check if Emacs base configuration already exists +  lineinfile: +    dest: "{{ emacs_config_dir }}/init.el" +    state: present +    regexp: "emacsconf-edit" +    line: "(load-file \"emacsconf-edit.el\")" diff --git a/roles/wiki-edit/templates/emacsconf-edit.el b/roles/wiki-edit/templates/emacsconf-edit.el new file mode 100644 index 0000000..78e11a8 --- /dev/null +++ b/roles/wiki-edit/templates/emacsconf-edit.el @@ -0,0 +1,32 @@ +(let ((packages '({% for package in emacsconf_edit_packages %}{{ package }}{% endfor %}))) +  (mapc (lambda (package) (unless (package-installed-p package) (package-install package))) packages)) +;; Configuration +(vertico-mode) +(show-paren-mode) +(fset 'yes-or-no-p 'y-or-n-p) +(global-set-key (kbd "C-x g") 'magit-status) +(global-set-key (kbd "C-x b") 'consult-buffer) +(global-set-key (kbd "M-g t") 'emacsconf-go-to-talk) +(global-set-key (kbd "C-.") 'embark-act) +(global-set-key (kbd "C-c .") 'embark-act) +(global-set-key (kbd "C-;") 'embark-act) +(modus-themes-load-vivendi) +(org-babel-do-load-languages  'org-babel-load-languages '((emacs-lisp . t) (shell . t))) +(setq backup-directory-alist '(("." . "~/.emacs.d/backups"))) +(find-file "{{ emacsconf_private_dir }}/conf.org") +(split-window-horizontally) +(magit-status "{{ emacsconf_edit_wiki_dir }}") +(global-auto-revert-mode 1) +(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) +(projectile-mode +1) +(setq projectile-completion-system 'default) +(setq projectile-enable-caching t) +(setq projectile-indexing-method 'alien) +(add-to-list 'projectile-globally-ignored-files "node_modules") +(add-to-list 'projectile-globally-ignored-files ".cache") +(add-to-list 'projectile-globally-ignored-files "_cache") + +(setq completion-styles '(orderless))    +(setq completion-category-defaults nil)  +(setq completion-category-overrides '((file (styles orderless)))) +(require 'ox-md) diff --git a/roles/wiki-publish/defaults/main.yml b/roles/wiki-publish/defaults/main.yml new file mode 100644 index 0000000..c6ca568 --- /dev/null +++ b/roles/wiki-publish/defaults/main.yml @@ -0,0 +1,7 @@ +emacsconf_year: 2022 +emacsconf_org_file: "{{ emacsconf_private_dir }}/conf.org" +emacsconf_publishing_phase: schedule +emacsconf_el_dir: ~/emacsconf-el +emacsconf_edit_wiki_dir: ~/emacsconf-wiki +emacsconf_private_dir: ~/emacsconf-2022-private +emacs_config_dir: ~/.emacs.d diff --git a/roles/wiki-publish/tasks/main.yml b/roles/wiki-publish/tasks/main.yml new file mode 100644 index 0000000..897cecc --- /dev/null +++ b/roles/wiki-publish/tasks/main.yml @@ -0,0 +1,71 @@ +--- +- name: Set up SSH directory +  ansible.builtin.file: +    path: /home/ikiwiki/.ssh +    state: directory +    mode: '0700' +- name: Install SSH key for EmacsConf wiki +  ansible.builtin.get_url: +    url: https://emacsconf.org/id_rsa_anon_git_emacsconf +    dest: /home/ikiwiki/.ssh/id_rsa_anon_git_emacsconf +    mode: '0600' +    owner: 'ikiwiki' +- name: Set up packages +  become: yes +  block: +    # This repository is currently not working +    # - name: Add snapshot repository +    #   ansible.builtin.apt_repository: +    #     repo: deb http://emacs.ganneff.de/ buster main +    - name: Remove old package +      ansible.builtin.apt: +        name: emacs +        state: absent +    - name: Install Emacs snapshot +      ansible.builtin.apt: +        name: emacs-snapshot-nox +        state: present +- name: Set up Emacs configuration for non-interactive publishing +  become: true +  become_user: "{{ emacsconf_publish_user }}" +  template: +    src: emacsconf-config.el +    dest: "{{ emacs_config_dir }}/emacsconf-config.el" +- name: Check if Emacs base configuration already exists +  become: true +  become_user: "{{ emacsconf_publish_user }}" +  lineinfile: +    dest: "{{ emacs_config_dir }}/init.el" +    state: present +    regexp: "emacsconf-config" +    line: "(load-file \"emacsconf-config.el\")" +- name: Set up or update repositories +  become: false +  tags: publish +  block: +    - name: Check out wiki repository +      ansible.builtin.git: +        repo: git://git.emacsconf.org/emacsconf-wiki +        dest: "{{ emacsconf_edit_wiki_dir }}" +    - name: Check out emacsconf-el +      ansible.builtin.git: +        repo: git@git.emacsconf.org:pub/emacsconf-el +        dest: "{{ emacsconf_el_dir }}" +      register: elisp +    - name: Check out emacsconf-2022-private +      ansible.builtin.git: +        repo: git@git.emacsconf.org:emacsconf-2022-private +        dest: "{{ emacsconf_private_dir }}" +      register: private +- name: Publish +  tags: publish +  block: +    - name: Publish the schedule +      command: emacs -l "{{ emacsconf_config_dir }}/emacsconf-config.el" --batch --exec '(emacsconf-generate-main-schedule)' +      when: (force_publish|d(false)) or ((private.changed or elisp.changed) and slug is not defined) +    - name: Update a specific talk's nav page +      tags: publish-talk +      command: emacs -l "{{ emacsconf_config_dir }}/emacsconf-config.el" --batch --exec '(emacsconf-with-talk-heading "{{ slug }}" (emacsconf-update-talk))' +      when: slug is defined +    - name: Commit the wiki and push +      shell: cd {{ emacsconf_edit_wiki_dir }}; git commit -m 'Update from ansible' -a; git push diff --git a/roles/wiki-publish/templates/emacsconf-config.el b/roles/wiki-publish/templates/emacsconf-config.el new file mode 100644 index 0000000..53ffe64 --- /dev/null +++ b/roles/wiki-publish/templates/emacsconf-config.el @@ -0,0 +1,19 @@ +(add-to-list 'load-path "{{ emacsconf_el_dir }}") +(require 'emacsconf) +(require 'emacsconf-publish) +(require 'emacsconf-schedule) +(org-babel-do-load-languages  'org-babel-load-languages '((emacs-lisp . t) (shell . t))) +(setq emacsconf-year "{{ emacsconf_year }}") +(setq emacsconf-org-file "{{ emacsconf_org_file }}") +(setq emacsconf-directory "{{ emacsconf_edit_wiki_dir }}") +{% if emacsconf_streaming_nick is defined %} +(setq emacsconf-streaming-nick "{{ emacsconf_streaming_nick }}") +{% endif %} +{% if emacsconf_org_tag is defined %} +(setq emacsconf-org-tag "{{ emacsconf_org_tag }}") +{% endif %} +{% if emacsconf_ansible_directory is defined %} +(setq emacsconf-ansible-directory "{{ emacsconf_ansible_directory }}") +{% endif %} +(setq emacsconf-pad-api-key "{{ etherpad_api_key }}") +(setq emacsconf-publishing-phase '{{ emacsconf_publishing_phase }}) diff --git a/roles/wiki/defaults/main.yml b/roles/wiki/defaults/main.yml new file mode 100644 index 0000000..421427c --- /dev/null +++ b/roles/wiki/defaults/main.yml @@ -0,0 +1,21 @@ +--- +ikiwiki_git_branch: master +ikiwiki_path: /home/ikiwiki +ikiwiki_src_dir: "{{ ikiwiki_path }}/emacsconf" +ikiwiki_plugin_path: /home/ikiwiki/.ikiwiki/IkiWiki/Plugin +ikiwiki_admin: bandali@gnu.org +ikiwiki_dest: /var/www/emacsconf.org +ikiwiki_url: https://emacsconf.org +ikiwiki_plugins: +  - goodstuff +  - theme +  - license +  - sidebar +  - attachment +  - remove +ikiwiki_underlay: /usr/share/ikiwiki/basewiki +ikiwiki_cookie_jar: "{{ ikiwiki_path }}/.ikiwiki/cookies" +ikiwiki_git_wrapper: "{{ ikiwiki_path }}/hooks/emacsconf" +ikiwiki_git_test_receive_wrapper: "{{ ikiwiki_path }}/hooks/emacsconf-pre" +ikiwiki_git_base_url: //git.emacsconf.org/emacsconf-wiki + diff --git a/roles/wiki/templates/htmlscrubber.pm b/roles/wiki/templates/htmlscrubber.pm index bd9ff90..4cbf300 100755 --- a/roles/wiki/templates/htmlscrubber.pm +++ b/roles/wiki/templates/htmlscrubber.pm @@ -92,7 +92,7 @@ sub scrubber {  		default => [undef, { (                               map { $_ => 1 } qw{                                   version xmlns x y fill font-size font-weight stroke stroke-width stroke-dasharray transform  -          data-start data-end data-video data-target data-tracks +          data-start data-end data-video data-target data-tracks data-track                kind label srclang default  				abbr accept accept-charset accesskey  				align alt axis border cellpadding cellspacing diff --git a/roles/wiki/templates/supervisord.conf b/roles/wiki/templates/supervisord.conf new file mode 100644 index 0000000..4df613a --- /dev/null +++ b/roles/wiki/templates/supervisord.conf @@ -0,0 +1,5 @@ +[program:lighttpd] +command=/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf + +[program:sshd] +command=/usr/sbin/sshd -D
\ No newline at end of file | 
