1 --- |
1 --- |
2 # Create/update my user, don't clobber my extra groups. |
2 # Create/update my user, don't clobber my extra groups. |
3 - name: "User setup" |
3 - name: "User setup" |
4 user: |
4 user: |
5 name: "{{user_name}}" |
5 name: "{{ user_name }}" |
6 comment: "{{user_comment}}" |
6 comment: "{{ user_comment }}" |
7 shell: /bin/zsh |
7 shell: /bin/zsh |
8 groups: sudo |
8 groups: sudo |
9 append: true |
9 append: true |
10 register: user |
10 register: user |
11 tags: user |
11 tags: user |
12 |
12 |
13 - name: "User authorized_keys" |
13 - name: "User authorized_keys" |
14 authorized_key: |
14 authorized_key: |
15 manage_dir: true |
15 manage_dir: true |
16 user: "{{user_name}}" |
16 user: "{{ user_name }}" |
17 key: "{{item}}" |
17 key: "{{ item }}" |
18 with_file: |
18 with_file: |
19 - public_keys/{{user_name}} |
19 - public_keys/{{ user_name }} |
20 tags: user, ssh |
20 tags: user, ssh |
21 |
21 |
22 - name: "Clone dotfiles" |
22 - name: "Clone dotfiles" |
23 become: true |
23 become: true |
24 become_user: "{{user_name}}" |
24 become_user: "{{ user_name }}" |
25 shell: > |
25 shell: > |
26 hg clone -U {{dotfiles_default | quote}} _dotfiles_ |
26 hg clone -U {{ dotfiles_default | quote }} _dotfiles_ |
27 && mv _dotfiles_/.hg . |
27 && mv _dotfiles_/.hg . |
28 && rmdir _dotfiles_ |
28 && rmdir _dotfiles_ |
29 && hg -R ~ update -C master |
29 && hg -R ~ update -C master |
30 args: |
30 args: |
31 chdir: "{{user.home}}" |
31 chdir: "{{ user.home }}" |
32 creates: "{{user.home}}/.hg" |
32 creates: "{{ user.home }}/.hg" |
33 tags: user, dotfiles |
33 tags: user, dotfiles |
34 |
34 |
35 - name: "Dotfiles hg sources" |
35 - name: "Dotfiles hg sources" |
36 become: true |
36 become: true |
37 become_user: "{{user_name}}" |
37 become_user: "{{ user_name }}" |
38 ini_file: |
38 ini_file: |
39 dest: "{{user.home}}/.hg/hgrc" |
39 dest: "{{ user.home }}/.hg/hgrc" |
40 section: paths |
40 section: paths |
41 option: "{{item.name}}" |
41 option: "{{ item.name }}" |
42 value: "{{item.url}}" |
42 value: "{{ item.url }}" |
43 mode: 0640 |
43 mode: 0640 |
44 create: no |
44 create: no |
45 with_items: |
45 with_items: |
46 - {name: 'default', url: "{{dotfiles_default}}"} |
46 - {name: 'default', url: "{{ dotfiles_default }}"} |
47 - {name: 'default-push', url: "{{dotfiles_default_push}}"} |
47 - {name: 'default-push', url: "{{ dotfiles_default_push }}"} |
48 tags: user, dotfiles |
48 tags: user, dotfiles |
49 |
49 |
50 - name: "Update dotfiles" |
50 - name: "Update dotfiles" |
51 become: true |
51 become: true |
52 become_user: "{{user_name}}" |
52 become_user: "{{ user_name }}" |
53 command: hg pull -u |
53 command: hg pull -u |
54 args: |
54 args: |
55 chdir: "{{user.home}}" |
55 chdir: "{{ user.home }}" |
56 register: update_dotfiles |
56 register: update_dotfiles |
57 changed_when: update_dotfiles.stdout | match("added|updated") |
57 changed_when: update_dotfiles.stdout | match("added|updated") |
58 failed_when: update_dotfiles.rc > 1 |
58 failed_when: update_dotfiles.rc > 1 |
59 tags: user, dotfiles |
59 tags: user, dotfiles |
60 |
60 |
61 - name: "Run bin/homedir-setup" |
61 - name: "Run bin/homedir-setup" |
62 become: true |
62 become: true |
63 become_user: "{{user_name}}" |
63 become_user: "{{ user_name }}" |
64 shell: bin/homedir-setup |
64 shell: bin/homedir-setup |
65 args: |
65 args: |
66 chdir: "{{user.home}}" |
66 chdir: "{{ user.home }}" |
67 register: homedir_setup |
67 register: homedir_setup |
68 changed_when: homedir_setup.stdout | match("Updating|Cloning") |
68 changed_when: homedir_setup.stdout | match("Updating|Cloning") |
69 failed_when: homedir_setup.rc != 0 |
69 failed_when: homedir_setup.rc != 0 |
70 tags: user, dotfiles |
70 tags: user, dotfiles |