diff --git a/defaults/main.yml b/defaults/main.yml index cde4758..0886b42 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,7 +1,6 @@ --- # defaults file for user_config -user: - name: vincent +user_config_username: root -user_config_repo: ssh://git@git.{{ domain.name }}:2222/vincent/conf2.git +user_config_repo: "ssh://toto@domaine.foo:port/root/conf.git" diff --git a/handlers/main.yml b/handlers/main.yml index 4ce73a9..d4d9f97 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,2 +1,7 @@ --- -# handlers file for user_config \ No newline at end of file +# handlers file for user_config +- name: Apply stow config + ansible.builtin.shell: stow {{user_config_stow_module}} + args: + chdir: '{{user_config_home}}/conf2' + diff --git a/tasks/main.yml b/tasks/main.yml index ee4da0b..01d8331 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,53 +1,27 @@ --- # tasks file for user_config -- name: clone user repository - git: - dest: /home/{{user.name}}/conf2 # required. The path of where the repository should be checked out. This parameter is required, unless C(clone) is set to C(no). - repo: "{{ user_config_repo }}" # required. git, SSH, or HTTP(S) protocol address of the git repository. - clone: yes # not required. If C(no), do not clone the repository if it does not exist locally - recursive: yes - force: no - update: yes - accept_hostkey: yes - register: config_download +- name: Clone user repository + ansible.builtin.git: + dest: "{{ user_config_home }}" + repo: "{{ user_config_repo }}" + clone: true + recursive: true + force: false + update: true + accept_hostkey: true + notify: Apply stow config -- debug: - msg: "{{ config_download }}" - - #- name: pass user shell to zsh - # user: - # name: "{{user.name}}" # required. Name of the user to create, remove or modify. - # shell: /bin/zsh # not required. Optionally set the user's shell.,On macOS, before version 2.5, the default shell for non-system users was /usr/bin/false. Since 2.5, the default shell for non-system users on macOS is /bin/bash. - # state: present # not required. choices: absent;present. Whether the account should exist or not, taking action if the state is different from what is stated. - # become: yes - -- name: test if user bash rc exist - stat: - path: "{{ item }}" +- name: Test if user bash rc exist + ansible.builtin.stat: + path: '{{ item }}' register: links - with_items: - - /home/{{user.name}}/.bashrc - - /home/{{user.name}}/.zshrc - - /root/.bashrc - become: true + with_items: + - /{{ user_config_home }}/.bashrc + - /{{ user_config_home }}/.zshrc -- name: delete bashrc if needed - file: - path: "{{ item.stat.path }}" +- name: Delete bashrc if needed + ansible.builtin.file: + path: '{{ item.stat.path }}' state: absent when: item.stat.islnk is defined and not item.stat.islnk - with_items: "{{links.results }}" - become: true - -- name: apply stow config - shell: stow * - args: - chdir: /home/{{user.name}}/conf2 - when: config_download.changed == true - -- name: apply stow config on root - shell: stow --t /root zsh vim git bat - args: - chdir: /home/{{user.name}}/conf2 - when: config_download.changed == true - become: true + with_items: '{{ links.results }}' diff --git a/vars/main.yml b/vars/main.yml index de829f5..34eab53 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -1,2 +1,14 @@ --- -# vars file for user_config \ No newline at end of file +# vars file for user_config + +user_config_home: "{% if user_config_username == 'root' %}\ + /{{user_config_username}}\ + {% else %}\ + /home/{{user_config_username}}\ + {% endif%}" + +user_config_stow_module: "{% if user_config_username == 'root' %}\ + zsh git vim bat\ + {% else %}\ + *\ + {% endif %}"