Compare commits

..

2 commits

21 changed files with 248 additions and 221 deletions

View file

@ -1,7 +1,8 @@
dotfiles_repo: 'git@forgejo.fudiggity.nl:sonny/dotfiles.git' ---
dotfiles_repo: "git@forgejo.fudiggity.nl:sonny/dotfiles.git"
git_domain: 'forgejo.fudiggity.nl' git_domain: "forgejo.fudiggity.nl"
git_host_key: 'forgejo.fudiggity.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBqEej87ukSK7KGi7e0q+oTrru4h7Fm6fK8GgiMtu01+' git_host_key: "forgejo.fudiggity.nl ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBqEej87ukSK7KGi7e0q+oTrru4h7Fm6fK8GgiMtu01+"
git_name: Sonny Bakker git_name: Sonny Bakker
git_email: sonny871@hotmail.com git_email: sonny871@hotmail.com

View file

@ -1,50 +1,51 @@
---
neovim_plugins: neovim_plugins:
- url: 'https://forgejo.fudiggity.nl/sonny/source-link.lua' - url: "https://forgejo.fudiggity.nl/sonny/source-link.lua"
name: 'source-link' name: "source-link"
- url: 'https://github.com/nvim-tree/nvim-tree.lua' - url: "https://github.com/nvim-tree/nvim-tree.lua"
name: 'nvim-tree' name: "nvim-tree"
- url: 'https://github.com/nvim-tree/nvim-web-devicons' - url: "https://github.com/nvim-tree/nvim-web-devicons"
name: 'nvim-tree-icons' name: "nvim-tree-icons"
- url: 'https://github.com/neovim/nvim-lspconfig' - url: "https://github.com/neovim/nvim-lspconfig"
name: 'nvim-lspconfig' name: "nvim-lspconfig"
- url: 'https://github.com/hrsh7th/nvim-cmp' - url: "https://github.com/hrsh7th/nvim-cmp"
name: 'nvim-cmp' name: "nvim-cmp"
- url: 'https://github.com/hrsh7th/cmp-buffer' - url: "https://github.com/hrsh7th/cmp-buffer"
name: 'cmp-buffer' name: "cmp-buffer"
- url: 'https://github.com/hrsh7th/cmp-path' - url: "https://github.com/hrsh7th/cmp-path"
name: 'cmp-path' name: "cmp-path"
- url: 'https://github.com/hrsh7th/cmp-omni' - url: "https://github.com/hrsh7th/cmp-omni"
name: 'cmp-omni' name: "cmp-omni"
- url: 'https://github.com/hrsh7th/cmp-nvim-lsp' - url: "https://github.com/hrsh7th/cmp-nvim-lsp"
name: 'cmp-nvim-lsp' name: "cmp-nvim-lsp"
- url: 'https://github.com/hrsh7th/cmp-nvim-lua' - url: "https://github.com/hrsh7th/cmp-nvim-lua"
name: 'cmp-nvim-lua' name: "cmp-nvim-lua"
- url: 'https://github.com/nvim-treesitter/nvim-treesitter' - url: "https://github.com/nvim-treesitter/nvim-treesitter"
name: 'nvim-treesitter' name: "nvim-treesitter"
version: master # main seems broken? version: master # main seems broken?
- url: 'https://github.com/nvim-lua/plenary.nvim' - url: "https://github.com/nvim-lua/plenary.nvim"
name: 'plenary.nvim' name: "plenary.nvim"
- url: 'https://github.com/nvim-telescope/telescope-fzf-native.nvim' - url: "https://github.com/nvim-telescope/telescope-fzf-native.nvim"
name: 'telescope-fzf-native.nvim' name: "telescope-fzf-native.nvim"
- url: 'https://github.com/nvim-telescope/telescope.nvim' - url: "https://github.com/nvim-telescope/telescope.nvim"
name: 'telescope.nvim' name: "telescope.nvim"
version: '0.1.x' version: "0.1.x"
- url: 'https://github.com/L3MON4D3/LuaSnip' - url: "https://github.com/L3MON4D3/LuaSnip"
name: 'luasnip' name: "luasnip"
version: 'v1.0.0' version: "v1.0.0"
- url: 'https://github.com/lewis6991/gitsigns.nvim' - url: "https://github.com/lewis6991/gitsigns.nvim"
name: 'gitsigns.nvim' name: "gitsigns.nvim"
version: 'v0.9.0' version: "v0.9.0"
- url: 'https://github.com/nvim-lualine/lualine.nvim' - url: "https://github.com/nvim-lualine/lualine.nvim"
name: 'lualine' name: "lualine"
- url: 'https://github.com/lukas-reineke/indent-blankline.nvim' - url: "https://github.com/lukas-reineke/indent-blankline.nvim"
name: 'indent-blankline.nvim' name: "indent-blankline.nvim"
version: 'v3.7.2' version: "v3.7.2"
- url: 'https://github.com/projekt0n/github-nvim-theme.git' - url: "https://github.com/projekt0n/github-nvim-theme.git"
name: 'github-colors' name: "github-colors"
version: 'v1.1.2' version: "v1.1.2"
- url: 'https://github.com/stevearc/conform.nvim.git' - url: "https://github.com/stevearc/conform.nvim.git"
name: 'conform.nvim' name: "conform.nvim"
version: 'v9.0.0' version: "v9.0.0"
language_servers: [] language_servers: []

View file

@ -1,4 +1,5 @@
xdg_config_dir: '{{ ansible_env.HOME }}/.config' ---
xdg_data_dir: '{{ ansible_env.HOME }}/.local/share' xdg_config_dir: "{{ ansible_env.HOME }}/.config"
xdg_data_dir: "{{ ansible_env.HOME }}/.local/share"
packages: [] packages: []

View file

@ -1,40 +1,41 @@
---
aur_packages: aur_packages:
- url: 'https://aur.archlinux.org/nvm.git' - url: "https://aur.archlinux.org/nvm.git"
name: 'nvm' name: "nvm"
package_name: 'nvm' package_name: "nvm"
version: '0.40.0-1' version: "0.40.0-1"
arch: 'any' arch: "any"
aur_build_dir: '/usr/local/src' aur_build_dir: "/usr/local/src"
python_build_dir: '/usr/local/src' python_build_dir: "/usr/local/src"
python_install_dir: '/opt' python_install_dir: "/opt"
python_download_url: 'https://www.python.org/ftp/python' python_download_url: "https://www.python.org/ftp/python"
python_versions: python_versions:
- version: 3.12.9 - version: 3.12.9
path: 'python3.12' path: "python3.12"
binary: 'python3.12' binary: "python3.12"
- version: 3.11.9 - version: 3.11.9
path: 'python3.11' path: "python3.11"
binary: 'python3.11' binary: "python3.11"
- version: 3.10.0 - version: 3.10.0
path: 'python3.10' path: "python3.10"
binary: 'python3.10' binary: "python3.10"
- version: 3.9.14 - version: 3.9.14
path: 'python3.9' path: "python3.9"
binary: 'python3.9' binary: "python3.9"
- version: 3.8.14 - version: 3.8.14
path: 'python3.8' path: "python3.8"
binary: 'python3.8' binary: "python3.8"
- version: 3.7.14 - version: 3.7.14
path: 'python3.7' path: "python3.7"
binary: 'python3.7' binary: "python3.7"
- version: 3.6.15 - version: 3.6.15
path: 'python3.6' path: "python3.6"
binary: 'python3.6' binary: "python3.6"

View file

@ -1,3 +1,4 @@
---
language_servers: language_servers:
- package: ansible-language-server - package: ansible-language-server
server_name: "ansiblels" server_name: "ansiblels"
@ -25,7 +26,7 @@ language_servers:
- package: esbonio - package: esbonio
server_name: "esbonio" server_name: "esbonio"
auto_setup: true auto_setup: false
- package: lua-language-server - package: lua-language-server
server_name: "lua_ls" server_name: "lua_ls"

View file

@ -1,3 +1,4 @@
---
packages: packages:
- python - python
- git - git
@ -21,3 +22,5 @@ packages:
- which - which
- gcc - gcc
- make - make
- esbonio
- marksman

View file

@ -1,3 +1,4 @@
---
# TODO: add lua language server, see https://github.com/LuaLS/lua-language-server? # TODO: add lua language server, see https://github.com/LuaLS/lua-language-server?
language_servers: language_servers:
- package: "@ansible/ansible-language-server" - package: "@ansible/ansible-language-server"

View file

@ -1,3 +1,4 @@
---
packages: packages:
- python3 - python3
- git - git

View file

@ -1,3 +1,4 @@
---
personal: personal:
hosts: hosts:
xps: &xps xps: &xps
@ -16,7 +17,6 @@ debian:
hosts: hosts:
fudiggity: fudiggity:
<<: *fudiggity <<: *fudiggity
arch: arch:
hosts: hosts:
xps: xps:

View file

@ -1,3 +1,4 @@
---
- name: Development provisioning - name: Development provisioning
hosts: hosts:
- personal - personal
@ -6,38 +7,38 @@
pre_tasks: pre_tasks:
- name: Verifying that a limit is set - name: Verifying that a limit is set
ansible.builtin.fail: ansible.builtin.fail:
msg: 'This playbook cannot be run with no limit' msg: "This playbook cannot be run with no limit"
run_once: true run_once: true
when: ansible_limit is not defined when: ansible_limit is not defined
- name: Install packages - name: Install packages
become: true become: true
ansible.builtin.package: ansible.builtin.package:
name: '{{ item }}' name: "{{ item }}"
state: present state: present
loop: '{{ packages }}' loop: "{{ packages }}"
- name: Add git forge to known hosts - name: Add git forge to known hosts
ansible.builtin.include_role: ansible.builtin.include_role:
name: common name: common
tasks_from: 'known_hosts.yml' tasks_from: "known_hosts.yml"
vars: vars:
user: '{{ ansible_user_id }}' user: "{{ ansible_user_id }}"
items: items:
- domain: '{{ git_domain }}' - domain: "{{ git_domain }}"
key: '{{ git_host_key }}' key: "{{ git_host_key }}"
when: ansible_hostname != 'fudiggity' when: ansible_hostname != 'fudiggity'
tasks: tasks:
- name: Setup dotfiles - name: Setup dotfiles
ansible.builtin.import_tasks: 'tasks/dotfiles.yml' ansible.builtin.import_tasks: "tasks/dotfiles.yml"
tags: dotfiles tags: dotfiles
- name: Include generic neovim tasks - name: Include generic neovim tasks
ansible.builtin.import_tasks: 'tasks/neovim.yml' ansible.builtin.import_tasks: "tasks/neovim.yml"
tags: neovim tags: neovim
- name: Include debian neovim tasks - name: Include debian neovim tasks
ansible.builtin.import_tasks: 'tasks/debian/neovim.yml' ansible.builtin.import_tasks: "tasks/debian/neovim.yml"
when: "'debian' in group_names" when: "'debian' in group_names"
tags: neovim tags: neovim
@ -49,23 +50,23 @@
manager: pacman manager: pacman
- name: Include arch neovim tasks - name: Include arch neovim tasks
ansible.builtin.import_tasks: 'tasks/arch/neovim.yml' ansible.builtin.import_tasks: "tasks/arch/neovim.yml"
when: "'arch' in group_names" when: "'arch' in group_names"
tags: neovim tags: neovim
- name: Install AUR packages - name: Install AUR packages
ansible.builtin.import_tasks: 'tasks/arch/aur.yml' ansible.builtin.import_tasks: "tasks/arch/aur.yml"
tags: aur tags: aur
- name: Setup docker - name: Setup docker
ansible.builtin.import_tasks: 'tasks/arch/docker.yml' ansible.builtin.import_tasks: "tasks/arch/docker.yml"
tags: docker tags: docker
- name: Setup python versions - name: Setup python versions
ansible.builtin.include_tasks: 'tasks/arch/python.yml' ansible.builtin.include_tasks: "tasks/arch/python.yml"
loop: '{{ python_versions }}' loop: "{{ python_versions }}"
tags: python tags: python
- name: Setup NVM - name: Setup NVM
ansible.builtin.import_tasks: 'tasks/arch/nvm.yml' ansible.builtin.import_tasks: "tasks/arch/nvm.yml"
tags: nvm tags: nvm

View file

@ -1,3 +1,4 @@
---
- src: git+https://forgejo.fudiggity.nl/sonny/common-ansible.git - src: git+https://forgejo.fudiggity.nl/sonny/common-ansible.git
name: common name: common
version: master version: master

View file

@ -1,9 +1,10 @@
---
- name: Set package directory - name: Set package directory
ansible.builtin.set_fact: ansible.builtin.set_fact:
build_dir: '{{ aur_build_dir }}/{{ item.name }}' build_dir: "{{ aur_build_dir }}/{{ item.name }}"
- name: 'Retrieve package name for {{ item.name }}' - name: "Retrieve package name for {{ item.name }}"
command: ansible.builtin.command:
argv: argv:
- grep - grep
- --only-matching - --only-matching
@ -12,8 +13,8 @@
- "{{ build_dir }}/PKGBUILD" - "{{ build_dir }}/PKGBUILD"
register: pkg_name register: pkg_name
- name: 'Retrieve package version for {{ item.name }}' - name: "Retrieve package version for {{ item.name }}"
command: ansible.builtin.command:
argv: argv:
- grep - grep
- --only-matching - --only-matching
@ -22,8 +23,8 @@
- "{{ build_dir }}/PKGBUILD" - "{{ build_dir }}/PKGBUILD"
register: pkg_version register: pkg_version
- name: 'Retrieve package release for {{ item.name }}' - name: "Retrieve package release for {{ item.name }}"
command: ansible.builtin.command:
argv: argv:
- grep - grep
- --only-matching - --only-matching
@ -34,20 +35,20 @@
- name: Set package filename & version - name: Set package filename & version
ansible.builtin.set_fact: ansible.builtin.set_fact:
package_filename: '{{ pkg_name.stdout }}-{{ pkg_version.stdout }}-{{ pkg_release.stdout }}-{{ item.arch }}.pkg.tar.zst' package_filename: "{{ pkg_name.stdout }}-{{ pkg_version.stdout }}-{{ pkg_release.stdout }}-{{ item.arch }}.pkg.tar.zst"
installed_version: ansible_facts.packages[item.package_name].version|default('') installed_version: ansible_facts.packages[item.package_name].version|default('')
- name: 'Build package {{ item.name }}' - name: "Build package {{ item.name }}"
ansible.builtin.command: 'makepkg --syncdeps --rmdeps --clean --noconfirm --force' ansible.builtin.command: "makepkg --syncdeps --rmdeps --clean --noconfirm --force"
args: args:
chdir: '{{ build_dir }}' chdir: "{{ build_dir }}"
creates: '{{ build_dir }}/{{ package_filename }}' creates: "{{ build_dir }}/{{ package_filename }}"
register: package_build register: package_build
when: item.version != installed_version when: item.version != installed_version
- name: 'Install {{ item.name }}' - name: "Install {{ item.name }}"
become: true become: true
community.general.pacman: community.general.pacman:
name: '{{ build_dir }}/{{ package_filename }}' name: "{{ build_dir }}/{{ package_filename }}"
state: present state: present
when: item.version != installed_version when: item.version != installed_version

View file

@ -1,26 +1,27 @@
---
- name: Retrieve directory stats - name: Retrieve directory stats
ansible.builtin.stat: ansible.builtin.stat:
path: '{{ aur_build_dir }}/{{ item.name }}' path: "{{ aur_build_dir }}/{{ item.name }}"
loop: '{{ aur_packages }}' loop: "{{ aur_packages }}"
- name: Clone aur packages - name: Clone aur packages
become: true become: true
ansible.builtin.git: ansible.builtin.git:
repo: '{{ item.url }}' repo: "{{ item.url }}"
dest: '{{ aur_build_dir }}/{{ item.name }}' dest: "{{ aur_build_dir }}/{{ item.name }}"
update: true update: true
loop: '{{ aur_packages }}' loop: "{{ aur_packages }}"
- name: Change aur package directories owner - name: Change aur package directories owner
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: '{{ aur_build_dir }}/{{ item.name }}' path: "{{ aur_build_dir }}/{{ item.name }}"
state: directory state: directory
owner: '{{ ansible_user_id }}' owner: "{{ ansible_user_id }}"
group: '{{ ansible_user_id }}' group: "{{ ansible_user_id }}"
recurse: true recurse: true
loop: '{{ aur_packages }}' loop: "{{ aur_packages }}"
- name: Build & install aur packages - name: Build & install aur packages
ansible.builtin.include_tasks: 'tasks/arch/aur-package.yml' ansible.builtin.include_tasks: "tasks/arch/aur-package.yml"
loop: '{{ aur_packages }}' loop: "{{ aur_packages }}"

View file

@ -1,7 +1,8 @@
---
- name: Remove docker mapping files - name: Remove docker mapping files
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: '{{ item }}' path: "{{ item }}"
state: absent state: absent
loop: loop:
- /etc/subgid - /etc/subgid
@ -10,38 +11,38 @@
- name: Setup desktop configuration - name: Setup desktop configuration
become: true become: true
ansible.builtin.file: ansible.builtin.file:
path: 'files/desktop/docker-daemon.json' path: "files/desktop/docker-daemon.json"
dest: '/etc/docker/daemon.json' dest: "/etc/docker/daemon.json"
mode: '0755' mode: "0755"
when: ansible_hostname == 'desktop' when: ansible_hostname == 'desktop'
- name: Remove user setup desktop configuration - name: Remove user setup desktop configuration
ansible.builtin.file: ansible.builtin.file:
path: '{{ xdg_config_dir }}/docker/daemon.json' path: "{{ xdg_config_dir }}/docker/daemon.json"
state: absent state: absent
when: ansible_hostname == 'desktop' when: ansible_hostname == 'desktop'
- name: Check for .bashrc.override - name: Check for .bashrc.override
ansible.builtin.stat: ansible.builtin.stat:
path: '{{ ansible_env.HOME }}/.bashrc.override' path: "{{ ansible_env.HOME }}/.bashrc.override"
register: bashrc_override register: bashrc_override
- name: Create .bashrc.override - name: Create .bashrc.override
ansible.builtin.file: ansible.builtin.file:
path: '{{ ansible_env.HOME }}/.bashrc.override' path: "{{ ansible_env.HOME }}/.bashrc.override"
state: touch state: touch
mode: '0755' mode: "0755"
when: not bashrc_override.stat.exists when: not bashrc_override.stat.exists
- name: Remove rootless DOCKER_HOST variable assignment - name: Remove rootless DOCKER_HOST variable assignment
ansible.builtin.lineinfile: ansible.builtin.lineinfile:
path: '{{ ansible_env.HOME }}/.bashrc.override' path: "{{ ansible_env.HOME }}/.bashrc.override"
regexp: '^export DOCKER_HOST=' regexp: "^export DOCKER_HOST="
line: '' line: ""
- name: Disable user docker socket - name: Disable user docker socket
ansible.builtin.systemd: ansible.builtin.systemd:
name: '{{ item }}' name: "{{ item }}"
state: stopped state: stopped
enabled: false enabled: false
scope: user scope: user

View file

@ -1,6 +1,7 @@
---
- name: Install language servers - name: Install language servers
become: true become: true
community.general.pacman: community.general.pacman:
name: '{{ item }}' name: "{{ item }}"
state: present state: present
loop: '{{ language_servers | map(attribute="package") | list }}' loop: '{{ language_servers | map(attribute="package") | list }}'

View file

@ -1,15 +1,16 @@
---
- name: Set NVM install directory - name: Set NVM install directory
ansible.builtin.set_fact: ansible.builtin.set_fact:
install_dir: '{{ xdg_config_dir }}/nvm' install_dir: "{{ xdg_config_dir }}/nvm"
- name: Remove manually installed nvm install directory - name: Remove manually installed nvm install directory
ansible.builtin.file: ansible.builtin.file:
path: '{{ install_dir }}' path: "{{ install_dir }}"
state: absent state: absent
- name: Remove nvm entry from bashrc - name: Remove nvm entry from bashrc
ansible.builtin.lineinfile: ansible.builtin.lineinfile:
path: '{{ ansible_env.HOME }}/.bashrc.override' path: "{{ ansible_env.HOME }}/.bashrc.override"
line: > line: >
[ -s "{{ install_dir }}/nvm.sh" ] && \. "{{ install_dir }}/nvm.sh" # This loads nvm [ -s "{{ install_dir }}/nvm.sh" ] && \. "{{ install_dir }}/nvm.sh" # This loads nvm
state: absent state: absent

View file

@ -1,65 +1,66 @@
- name: 'check for {{ item.binary }} binary' ---
command: 'which {{ item.binary }}' - name: "Check for {{ item.binary }} binary"
ansible.builtin.command: "which {{ item.binary }}"
changed_when: false changed_when: false
failed_when: python_installed.rc not in [ 0, 1 ] failed_when: python_installed.rc not in [ 0, 1 ]
register: python_installed register: python_installed
- name: 'check for {{ item.binary }} download' - name: "Check for {{ item.binary }} download"
stat: ansible.builtin.stat:
path: '{{ python_build_dir }}/python-{{ item.version }}.tgz' path: "{{ python_build_dir }}/python-{{ item.version }}.tgz"
register: python_download register: python_download
- block: - when: python_installed.rc not in [ 0 ]
block:
# TODO: verify for checksum # TODO: verify for checksum
- name: 'retrieve python {{ item.version }} source' - name: "Retrieve python {{ item.version }} source"
become: true become: true
get_url: ansible.builtin.get_url:
url: '{{ python_download_url }}/{{ item.version }}/Python-{{ item.version }}.tgz' url: "{{ python_download_url }}/{{ item.version }}/Python-{{ item.version }}.tgz"
dest: '{{ python_build_dir }}/python-{{ item.version }}.tgz' dest: "{{ python_build_dir }}/python-{{ item.version }}.tgz"
owner: '{{ ansible_user_id }}' owner: "{{ ansible_user_id }}"
group: '{{ ansible_user_id }}' group: "{{ ansible_user_id }}"
when: not python_download.stat.exists when: not python_download.stat.exists
- name: 'extract python {{ item.version }} sources' - name: "Extract python {{ item.version }} sources"
become: true become: true
unarchive: ansible.builtin.unarchive:
src: '{{ python_build_dir }}/python-{{ item.version }}.tgz' src: "{{ python_build_dir }}/python-{{ item.version }}.tgz"
dest: '{{ python_build_dir }}' dest: "{{ python_build_dir }}"
include: 'Python-{{ item.version }}' include: "Python-{{ item.version }}"
- name: rename source directory - name: Rename source directory
become: true become: true
ansible.builtin.command: 'mv {{ python_build_dir}}/Python-{{ item.version }} {{ python_build_dir }}/{{ item.path }}' ansible.builtin.command: "mv {{ python_build_dir}}/Python-{{ item.version }} {{ python_build_dir }}/{{ item.path }}"
- name: set correct permissions - name: Set correct permissions
become: true become: true
file: ansible.builtin.file:
path: '{{ python_build_dir }}/{{ item.path }}' path: "{{ python_build_dir }}/{{ item.path }}"
recurse: true recurse: true
owner: '{{ ansible_user_id }}' owner: "{{ ansible_user_id }}"
group: '{{ ansible_user_id }}' group: "{{ ansible_user_id }}"
state: directory state: directory
- name: configure build - name: Configure build
ansible.builtin.command: 'sh ./configure --prefix={{ python_install_dir }}/{{ item.path }}' ansible.builtin.command: "sh ./configure --prefix={{ python_install_dir }}/{{ item.path }}"
args: args:
chdir: '{{ python_build_dir }}/{{ item.path }}/' chdir: "{{ python_build_dir }}/{{ item.path }}/"
- name: make build - name: Make build
ansible.builtin.command: 'make' ansible.builtin.command: "make"
args: args:
chdir: '{{ python_build_dir }}/{{ item.path }}/' chdir: "{{ python_build_dir }}/{{ item.path }}/"
- name: install build - name: Install build
become: true become: true
ansible.builtin.command: 'make install' ansible.builtin.command: "make install"
args: args:
chdir: '{{ python_build_dir }}/{{ item.path }}/' chdir: "{{ python_build_dir }}/{{ item.path }}/"
- name: 'create symlink for python {{ item.version }}' - name: "Create symlink for python {{ item.version }}"
become: true become: true
file: ansible.builtin.file:
src: '{{ python_install_dir }}/{{ item.path }}/bin/{{ item.binary }}' src: "{{ python_install_dir }}/{{ item.path }}/bin/{{ item.binary }}"
dest: '/usr/bin/{{ item.binary }}' dest: "/usr/bin/{{ item.binary }}"
state: link state: link
when: python_installed.rc not in [ 0 ]

View file

@ -1,7 +1,8 @@
---
- name: Install language servers on debian hosts - name: Install language servers on debian hosts
become: true become: true
community.general.npm: community.general.npm:
name: '{{ item }}' name: "{{ item }}"
global: true global: true
loop: '{{ language_servers | map(attribute="package") | list }}' loop: '{{ language_servers | map(attribute="package") | list }}'
@ -9,16 +10,16 @@
become: true become: true
ansible.builtin.file: ansible.builtin.file:
state: directory state: directory
path: '{{ neovim.install_path }}' path: "{{ neovim.install_path }}"
owner: '{{ ansible_user_id }}' owner: "{{ ansible_user_id }}"
group: '{{ ansible_user_gid }}' group: "{{ ansible_user_gid }}"
mode: '0755' mode: "0755"
- name: Register the current neovim version - name: Register the current neovim version
ansible.builtin.command: ansible.builtin.command:
argv: argv:
- '{{ neovim.install_path }}/bin/nvim' - "{{ neovim.install_path }}/bin/nvim"
- '--version' - "--version"
register: neovim_stats register: neovim_stats
changed_when: false changed_when: false
ignore_errors: true ignore_errors: true
@ -30,21 +31,21 @@
- name: Download neovim {{ neovim.version }} - name: Download neovim {{ neovim.version }}
ansible.builtin.get_url: ansible.builtin.get_url:
url: 'https://github.com/neovim/neovim/releases/download/{{ neovim.version }}/nvim-linux-x86_64.tar.gz' url: "https://github.com/neovim/neovim/releases/download/{{ neovim.version }}/nvim-linux-x86_64.tar.gz"
dest: /tmp/nvim-linux64.tar.gz dest: /tmp/nvim-linux64.tar.gz
mode: '0755' mode: "0755"
checksum: '{{ neovim.download_checksum }}' checksum: "{{ neovim.download_checksum }}"
when: neovim_stats.rc > 0 or neovim_installed_version != neovim.version when: neovim_stats.rc > 0 or neovim_installed_version != neovim.version
register: neovim_download register: neovim_download
- name: Extract downloaded neovim version - name: Extract downloaded neovim version
ansible.builtin.unarchive: ansible.builtin.unarchive:
src: /tmp/nvim-linux64.tar.gz src: /tmp/nvim-linux64.tar.gz
dest: '{{ neovim.install_path }}' dest: "{{ neovim.install_path }}"
extra_opts: extra_opts:
- '--strip-components=1' - "--strip-components=1"
- '--show-stored-names' - "--show-stored-names"
- '--overwrite' - "--overwrite"
when: | when: |
neovim_download.state == 'file' neovim_download.state == 'file'
and (neovim_installed_version is undefined or neovim_installed_version != neovim.version) and (neovim_installed_version is undefined or neovim_installed_version != neovim.version)
@ -52,6 +53,6 @@
- name: Add neovim to PATH - name: Add neovim to PATH
become: true become: true
ansible.builtin.template: ansible.builtin.template:
src: 'templates/debian/nvim.profile.j2' src: "templates/debian/nvim.profile.j2"
dest: '/etc/profile.d/neovim.sh' dest: "/etc/profile.d/neovim.sh"
mode: '0755' mode: "0755"

View file

@ -1,69 +1,70 @@
---
- name: Clone dotfiles - name: Clone dotfiles
ansible.builtin.git: ansible.builtin.git:
repo: '{{ dotfiles_repo }}' repo: "{{ dotfiles_repo }}"
dest: '{{ ansible_env.HOME }}/dotfiles' dest: "{{ ansible_env.HOME }}/dotfiles"
version: master version: master
update: true update: true
- name: Create xdg configuration directories - name: Create xdg configuration directories
ansible.builtin.file: ansible.builtin.file:
path: '{{ item }}' path: "{{ item }}"
state: directory state: directory
mode: '0755' mode: "0755"
loop: loop:
- '{{ xdg_config_dir }}/git' - "{{ xdg_config_dir }}/git"
- '{{ xdg_config_dir }}/tmux' - "{{ xdg_config_dir }}/tmux"
- name: Remove previous dotfiles - name: Remove previous dotfiles
ansible.builtin.file: ansible.builtin.file:
path: '{{ item }}' path: "{{ item }}"
state: absent state: absent
loop: loop:
- '{{ ansible_env.HOME }}/.tmux.conf' - "{{ ansible_env.HOME }}/.tmux.conf"
- '{{ ansible_env.HOME }}/.gitconfig' - "{{ ansible_env.HOME }}/.gitconfig"
- name: Setup dotfiles - name: Setup dotfiles
ansible.builtin.file: ansible.builtin.file:
path: '{{ item.dest }}' path: "{{ item.dest }}"
src: '{{ item.src }}' src: "{{ item.src }}"
state: link state: link
force: true force: true
loop: loop:
- src: '{{ ansible_env.HOME }}/dotfiles/.vimrc' - src: "{{ ansible_env.HOME }}/dotfiles/.vimrc"
dest: '{{ ansible_env.HOME }}/.vimrc' dest: "{{ ansible_env.HOME }}/.vimrc"
- src: '{{ ansible_env.HOME }}/dotfiles/.bashrc' - src: "{{ ansible_env.HOME }}/dotfiles/.bashrc"
dest: '{{ ansible_env.HOME }}/.bashrc' dest: "{{ ansible_env.HOME }}/.bashrc"
- src: '{{ ansible_env.HOME }}/dotfiles/.profile' - src: "{{ ansible_env.HOME }}/dotfiles/.profile"
dest: '{{ ansible_env.HOME }}/.profile' dest: "{{ ansible_env.HOME }}/.profile"
- src: '{{ ansible_env.HOME }}/dotfiles/tmux/tmux.conf' - src: "{{ ansible_env.HOME }}/dotfiles/tmux/tmux.conf"
dest: '{{ xdg_config_dir }}/tmux/tmux.conf' dest: "{{ xdg_config_dir }}/tmux/tmux.conf"
- src: '{{ ansible_env.HOME }}/dotfiles/tmux/light.conf' - src: "{{ ansible_env.HOME }}/dotfiles/tmux/light.conf"
dest: '{{ xdg_config_dir }}/tmux/light.conf' dest: "{{ xdg_config_dir }}/tmux/light.conf"
- src: '{{ ansible_env.HOME }}/dotfiles/tmux/dark.conf' - src: "{{ ansible_env.HOME }}/dotfiles/tmux/dark.conf"
dest: '{{ xdg_config_dir }}/tmux/dark.conf' dest: "{{ xdg_config_dir }}/tmux/dark.conf"
- src: '{{ ansible_env.HOME }}/dotfiles/.gitignore' - src: "{{ ansible_env.HOME }}/dotfiles/.gitignore"
dest: '{{ xdg_config_dir }}/git/ignore' dest: "{{ xdg_config_dir }}/git/ignore"
- name: Copy git configuration - name: Copy git configuration
ansible.builtin.template: ansible.builtin.template:
src: 'templates/gitconfig.j2' src: "templates/gitconfig.j2"
dest: '{{ xdg_config_dir }}/git/config' dest: "{{ xdg_config_dir }}/git/config"
mode: '0755' mode: "0755"
- name: Create script directory - name: Create script directory
ansible.builtin.file: ansible.builtin.file:
path: '{{ ansible_env.HOME }}/.local/bin' path: "{{ ansible_env.HOME }}/.local/bin"
state: directory state: directory
mode: '0755' mode: "0755"
- name: Copy tmux toggle script - name: Copy tmux toggle script
ansible.builtin.template: ansible.builtin.template:
src: 'templates/tmux-toggle.j2' src: "templates/tmux-toggle.j2"
dest: '{{ ansible_env.HOME }}/.local/bin/tmux-toggle.sh' dest: "{{ ansible_env.HOME }}/.local/bin/tmux-toggle.sh"
mode: '0755' mode: "0755"

View file

@ -1,3 +1,4 @@
---
- name: Ensure neovim configuration directories exist - name: Ensure neovim configuration directories exist
ansible.builtin.file: ansible.builtin.file:
path: "{{ item }}" path: "{{ item }}"

View file

@ -103,6 +103,12 @@ vim.lsp.config['lua_ls'] = {
} }
} }
-- Use system binary for esbonio
vim.lsp.config['esbonio'] = {
on_attach = on_attach,
capabilities = capabilities,
cmd = { '/usr/bin/esbonio' }
}
{% endif %} {% endif %}
vim.lsp.config['yamlls'] = { vim.lsp.config['yamlls'] = {
on_attach = on_attach, on_attach = on_attach,