diff --git a/roles/user/tasks/main.yml b/roles/user/tasks/main.yml --- a/roles/user/tasks/main.yml +++ b/roles/user/tasks/main.yml @@ -19,3 +19,31 @@ - public_keys/{{user.name}} tags: user, ssh +- name: Clone dotfiles + become: "{{user.name}}" + shell: > + hg clone -U {{dotfiles_repository | quote}} _dotfiles_ + && mv _dotfiles_/.hg . + && rmdir _dotfiles_ + && hg -R ~ update -C master + args: + chdir: "~" + creates: "~/.hg" + +- name: Update dotfiles + become: "{{user.name}}" + command: hg pull -u + args: + chdir: "~" + register: update_dotfiles + changed_when: update_dotfiles.stdout | match("added|updated") + failed_when: update_dotfiles.rc > 1 + +- name: Run bin/homedir-setup + become: "{{user.name}}" + shell: bin/homedir-setup + args: + chdir: "~" + register: homedir_setup + changed_when: homedir_setup.stdout | match("Updating|Cloning") + failed_when: homedir_setup.rc != 0