From 0a48fec2bfc1df49b0f587f6de9e9b5fa1219159 Mon Sep 17 00:00:00 2001 From: jonnybravo Date: Tue, 3 Feb 2026 12:20:04 +0100 Subject: [PATCH] Fix: Add robust filtering and conditional block for tmux config - In 'roles/tmux/tasks/main.yml', strengthened the filter for creating 'user_home_dirs' to explicitly exclude empty home directory paths. - Reverted 'roles/tmux/tasks/tmux_config.yml' to remove redundant conditionals. - In 'roles/tmux/tasks/main.yml', wrapped the 'include_tasks' for 'tmux_config.yml' in a block and added a robust 'when' condition to prevent execution for 'root' or for invalid home directories. This directly addresses the user's request and provides multiple layers of protection against the 'chown failed' error. --- roles/tmux/tasks/main.yml | 10 +++++++--- roles/tmux/tasks/tmux_config.yml | 9 +-------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/roles/tmux/tasks/main.yml b/roles/tmux/tasks/main.yml index 5fbb53a..5bf38c6 100644 --- a/roles/tmux/tasks/main.yml +++ b/roles/tmux/tasks/main.yml @@ -21,14 +21,18 @@ - item.value[0] != 'root' - item.value[4] is defined - item.value[4] != '/' + - item.value[4] != '' - name: Display the list of collected home directories ansible.builtin.debug: var: user_home_dirs -- name: Tmux config Play - include_tasks: tmux_config.yml - loop: "{{ user_home_dirs }}" +- name: Tmux config block + block: + - name: Tmux config Play + include_tasks: tmux_config.yml + loop: "{{ user_home_dirs }}" + when: item | basename != 'root' and item != '/' and item != '' # ======================================================================== # EXAMPLE: Here is how you can reuse the 'user_home_dirs' list diff --git a/roles/tmux/tasks/tmux_config.yml b/roles/tmux/tasks/tmux_config.yml index 3759ebd..bd68460 100644 --- a/roles/tmux/tasks/tmux_config.yml +++ b/roles/tmux/tasks/tmux_config.yml @@ -21,7 +21,6 @@ loop: "{{ tmux_plugins }}" loop_control: loop_var: plugin_item - when: home_dir != '/' - name: "Add git safe.directories" ansible.builtin.command: "git config --global --add safe.directory {{ home_dir }}/.config/tmux/{{ plugin_item.path }}" @@ -29,7 +28,6 @@ loop: "{{ tmux_plugins }}" loop_control: loop_var: plugin_item - when: home_dir != '/' - name: "Clone plugins" ansible.builtin.git: @@ -39,7 +37,6 @@ loop: "{{ tmux_plugins }}" loop_control: loop_var: plugin_item - when: home_dir != '/' - name: "Set plugin ownership" ansible.builtin.file: @@ -51,12 +48,10 @@ loop: "{{ tmux_plugins }}" loop_control: loop_var: plugin_item - when: home_dir != '/' - name: Set catppuccin_install_path for template ansible.builtin.set_fact: catppuccin_install_path: "{{ home_dir }}/.config/tmux/{{ (tmux_plugins | selectattr('name', 'equalto', 'catppuccin') | first).path }}" - when: home_dir != '/' - name: Install Template ansible.builtin.template: @@ -64,6 +59,4 @@ dest: "{{ home_dir }}/.tmux.conf" owner: "{{ config_owner }}" group: "{{ config_owner }}" - mode: '0644' - when: home_dir != '/' - + mode: '0644' \ No newline at end of file