ansible-role-common/tasks/devel.yml
2024-12-03 09:48:05 +01:00

120 lines
4.5 KiB
YAML

---
# Common/Devel: Install and Configure Dev Environment (optionally VS Code)
# - Installs VS Code, if user_vscode is set
# - Installs development tools, if the corresponding variable is set
# but will not try to configure VS Code, if user_vscode is not set.
# - Also configures VS Code, of user_vscode is set
# Variables:
# - user_vscode: Boolean, if vscode should be installed and configured
# - user_lang_cpp: Boolean for C and C++
# - user_lang_python: Boolean for Python
# - user_lang_golang: Boolean for Golang
# - user_lang_golang_gopath: Go workspace directory
# - user_lang_latex: Boolean for LaTeX
- name: VSCode - Install and configure VS Code
ansible.builtin.include_tasks: "{{ item }}"
with_first_found:
- "devel-{{ ansible_distribution }}.yml"
- "devel-{{ (override_os_family is defined) | ternary(override_os_family, ansible_os_family) }}.yml"
# Install Visual Studio Code and Set Basic Configuration
- name: VSCode - Basics
when: user_vscode
block:
- name: VSCode - Basics - Configure
ansible.builtin.shell: |
PATH=/usr/local/bin:$PATH
code --install-extension chiehyu.vscode-astyle
code --install-extension editorconfig
code --install-extension mhutchie.git-graph
code --install-extension yzane.markdown-pdf
code --install-extension jebbs.plantuml
code --install-extension mechatroner.rainbow-csv
code --install-extension grapecity.gc-excelviewer
# VS Code - C/C++ Development Tools
- name: VSCode - C/C++
when: user_vscode and user_lang_cpp
block:
- name: VSCode - C/C++ - Configure VS Code
ansible.builtin.shell: |
PATH=/usr/local/bin:$PATH
code --install-extension ms-vscode.cpptools
code --install-extension ms-vscode.cmake-tools
code --install-extension twxs.cmake
# VS Code - Python Development Tools
- name: Devel - Python - Install python dev packages
when: user_lang_python
ansible.builtin.pip:
name:
- autopep8
# - pylint # must be installed in each venv individually!
executable: "{{ override_pip_exe | default(default_pip3_exe) }}"
- name: VSCode - Python
when: user_vscode and user_lang_python
block:
- name: VSCode - Python - Configure VS Code
ansible.builtin.shell: |
PATH=/usr/local/bin:$PATH
code --install-extension ms-python.python
# VC Code - Golang Development Tools
# https://golang.org/doc/install
- name: Devel - Golang - Setup Environment
when: user_lang_golang
block:
- name: Devel - Golang - Create workspace directory
ansible.builtin.file:
path: "{{ user_lang_golang_gopath }}"
state: directory
mode: "0755"
- name: Devel - Golang - Create zshrc-host
ansible.builtin.file:
path: "{{ ansible_user_dir }}/.zshrc-host"
state: touch
mode: "0644"
- name: Devel - Golang - Add GOPATH
ansible.builtin.lineinfile:
path: "{{ ansible_user_dir }}/.zshrc-host"
line: "export GOPATH={{ user_lang_golang_gopath }}"
state: present
backup: true
- name: Devel - Golang - Add go bin to PATH
ansible.builtin.lineinfile:
path: "{{ ansible_user_dir }}/.zshrc-host"
line: "export PATH=$PATH:{{ user_lang_golang_gopath }}/bin"
state: present
backup: true
# TODO: make this resilient against changes
# and group all golang stuff in one section inside zshrc-host
- name: VSCode - Golang
when: user_vscode and user_lang_golang
block:
- name: VSCode - Golang - Configure VS Code
ansible.builtin.shell: |
PATH=/usr/local/bin:$PATH
code --install-extension golang.go
# VS Code - LaTeX Distribution
- name: Devel - LaTeX - Install TeX packages
when: user_lang_latex
become: true
ansible.builtin.shell: |
PATH=/Library/TeX/texbin:$PATH
tlmgr update --self
tlmgr install latexmk latexindent biblatex logreq xstring biber
tlmgr install collection-fontsextra collection-fontsrecommended collection-fontutils collection-langgerman collection-langenglish collection-mathscience
tlmgr install todonotes textpos lipsum pgfopts xpatch enumitem nomencl glossaries glossaries-german glossaries-english datatool mfirstuc xfor substr tracklang placeins placeins-plain csquotes appendixnumberbeamer fontaxes hyphenat
- name: VSCode - LaTeX
when: user_vscode and user_lang_latex
block:
- name: VSCode - Basics - Configure
ansible.builtin.shell: |
PATH=/usr/local/bin:$PATH
code --install-extension james-yu.latex-workshop