diff --git a/config/ansible/tasks/workstations/symlinks.yml b/config/ansible/tasks/workstations/symlinks.yml index 385f161..e491dac 100644 --- a/config/ansible/tasks/workstations/symlinks.yml +++ b/config/ansible/tasks/workstations/symlinks.yml @@ -3,6 +3,20 @@ ansible.builtin.set_fact: user_home: "{{ ansible_env.HOME if ansible_user_id == 'root' else lookup('env', 'HOME') }}" +- name: Define workstation symlinks + ansible.builtin.set_fact: + workstation_symlinks: + - { src: "$DOTFILES_PATH/vscode/settings.json", dest: "~/.config/Code/User/settings.json" } + - { src: "$DOTFILES_PATH/zed/settings.json", dest: "~/.config/zed/settings.json" } + - { src: "$DOTFILES_PATH/config/autostart", dest: "~/.config/autostart" } + +- name: Ensure parent directories for workstation symlinks exist + ansible.builtin.file: + path: "{{ item.dest | replace('~', user_home) | dirname }}" + state: directory + mode: "0755" + loop: "{{ workstation_symlinks }}" + - name: Create workstation symlinks ansible.builtin.file: src: "{{ item.src | replace('~', user_home) | replace('$DOTFILES_PATH', lookup('env', 'DOTFILES_PATH')) }}" @@ -10,13 +24,4 @@ state: link force: true follow: false - loop: - - { - src: "$DOTFILES_PATH/vscode/settings.json", - dest: "~/.config/Code/User/settings.json", - } - - { - src: "$DOTFILES_PATH/zed/settings.json", - dest: "~/.config/zed/settings.json", - } - - { src: "$DOTFILES_PATH/config/autostart", dest: "~/.config/autostart" } + loop: "{{ workstation_symlinks }}"