Skip to content

Commit 6ce59a4

Browse files
freemanjptatemz
andauthored
Added ability to overwrite VS Code settings (#175)
This change adds the `visual_studio_code_settings_overwrite` property to the user configuration. By setting it to `yes` it will overwrite the VS Code settings file if it exists. Co-authored-by: A. Tate Barber <tate.barber@gmail.com>
1 parent 31e75cf commit 6ce59a4

4 files changed

Lines changed: 34 additions & 2 deletions

File tree

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ users:
7070
visual_studio_code_extensions:
7171
- # extension 1
7272
- # extension 2
73+
visual_studio_code_settings_overwrite: # Overwrite the settings file if it exists. Options: boolean "yes" or "no" (defaults to "no").
7374
visual_studio_code_settings: # JSON object
7475
```
7576
@@ -84,7 +85,7 @@ Minimal playbook:
8485
- role: gantsign.visual-studio-code
8586
```
8687
87-
Playbook with extensions installed:
88+
Playbook with extensions installed that overwrites settings:
8889
8990
```yaml
9091
- hosts: servers
@@ -96,6 +97,7 @@ Playbook with extensions installed:
9697
- streetsidesoftware.code-spell-checker
9798
- wholroyd.jinja
9899
- ms-python.python
100+
visual_studio_code_settings_overwrite: yes
99101
visual_studio_code_settings: {
100102
"editor.rulers": [80, 100, 120],
101103
"editor.renderWhitespace": true,

molecule/default/playbook.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
- test_usr
1515
- test_usr2
1616
- test_usr3
17+
- test_usr4
1718

1819
- name: install gnupg2 (apt)
1920
become: yes
@@ -36,6 +37,21 @@
3637
state: present
3738
when: ansible_pkg_mgr == 'apt'
3839

40+
- name: create settings directory
41+
become: yes
42+
become_user: test_usr4
43+
file:
44+
path: /home/test_usr4/.config/Code/User
45+
state: directory
46+
mode: 'u=rwx,go='
47+
48+
- name: install default settings
49+
become: yes
50+
become_user: test_usr4
51+
copy:
52+
content: '{"remove_me": true}'
53+
dest: /home/test_usr4/.config/Code/User/settings.json
54+
3955
roles:
4056
- role: ansible-role-visual-studio-code
4157
users:
@@ -54,6 +70,9 @@
5470
visual_studio_code_extensions: []
5571
visual_studio_code_settings: {}
5672
- username: test_usr3
73+
- username: test_usr4
74+
visual_studio_code_settings: {}
75+
visual_studio_code_settings_overwrite: yes
5776
- role: ansible-role-visual-studio-code
5877
visual_studio_code_build: 'insiders'
5978
users:

molecule/default/tests/test_settings.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,14 @@ def test_settings_insiders(host):
2727
assert settings_file.group == 'test_usr'
2828
assert settings_file.mode == 0o600
2929
assert settings_file.contains('"Vagrantfile": "ruby"')
30+
31+
32+
def test_settings_overwrite(host):
33+
settings_file = host.file('/home/test_usr/.config/Code/User/settings.json')
34+
35+
assert settings_file.exists
36+
assert settings_file.is_file
37+
assert settings_file.user == 'test_usr'
38+
assert settings_file.group == 'test_usr'
39+
assert settings_file.mode == 0o600
40+
assert not settings_file.contains('remove_me')

tasks/write-settings.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
template:
3232
src: settings.json.j2
3333
dest: '~{{ user.username }}/{{ visual_studio_code_config_path }}/User/settings.json'
34-
force: no
34+
force: '{{ user.visual_studio_code_settings_overwrite | default(False) | bool }}'
3535
mode: 'u=rw,go='
3636
with_items: '{{ users }}'
3737
loop_control:

0 commit comments

Comments
 (0)