-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcore.yml
109 lines (101 loc) · 3.16 KB
/
core.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
- name: Bash Customization
hosts: localhost
connection: local
vars:
repository: https://github.com/bash-it/bash-it.git
version: master
theme: pure
aliases:
- general
- vim
- git
- maven
- docker-compose
- docker
- curl
- npm
plugins:
- base
- alias-completion
- brew
- git
- nvm
- sdkman
- ansible
- progress
- java
- jenv
completions:
- bash-it
- brew
- system
- docker-compose
- git
- sdkman
- nvm
- npm
- maven
- java
- jenv
user: "{{ ansible_user_id }}"
tasks:
- name: detect Linux variables
import_tasks: linux_vars.yml
when: ansible_os_family != "Darwin"
- name: assert home directory is detected
assert: { that: user_home | length > 0 }
- name: assert current shell is detected
assert: { that: user_shell | length > 0 }
- name: clone bash_it for {{ user }}
git:
repo: "{{ repository }}"
dest: "{{ user_home }}/.bash_it"
version: "{{ version }}"
become: yes
become_user: "{{ user }}"
- name: .bash_profile loads .bashrc for {{ user }}
blockinfile:
dest: "{{ user_home }}/.bash_profile"
create: yes
owner: "{{ user }}"
block: |
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
- name: change shell to bash for {{ user }}
command: "chsh -s /bin/bash {{ user }}"
become: yes
become_user: root
when: user_shell != "/bin/bash"
- name: install bash_it on .bashrc for {{ user }}
lineinfile:
dest: "{{ user_home }}/.bashrc"
create: yes
owner: "{{ user }}"
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
with_items:
- { regexp: '^export BASH_IT=', line: 'export BASH_IT="$HOME/.bash_it"' }
- { regexp: '^export BASH_IT_THEME=', line: 'export BASH_IT_THEME={{ theme }}' }
- { regexp: '^source \$BASH_IT', line: 'source $BASH_IT/bash_it.sh' }
- name: install bash_it plugins for {{ user }}
command: "/bin/bash -i -l -c \"bash-it enable plugin {{ plugins|join(' ') }}\""
become: yes
become_user: "{{ user }}"
when: plugins is defined
register: plugins_result
changed_when: "plugins_result.stdout_lines | reject('match', '.* is already enabled.') | list | length > 0"
- name: install bash_it aliases for {{ user }}
command: "/bin/bash -i -l -c \"bash-it enable alias {{ aliases|join(' ') }}\""
become: yes
become_user: "{{ user }}"
when: aliases is defined
register: aliases_result
changed_when: "aliases_result.stdout_lines | reject('match', '.* is already enabled.') | list | length > 0"
- name: install bash_it completions for {{ user }}
command: "/bin/bash -i -l -c \"bash-it enable completion {{ completions|join(' ') }}\""
become: yes
become_user: "{{ user }}"
when: completions is defined
register: completions_result
changed_when: "completions_result.stdout_lines | reject('match', '.* is already enabled.') | list | length > 0"