Description¶
Ansible role to apply microcontroller developer configuration.
This is capable of:
- Upgrade the system.
- Add apt repository sources.
- Update the apt cache.
- Uninstall apt packages.
- Install apt packages.
- Install yarn packages.
- Install pip packages.
- Apply system-wide configuration using git.
- Stop services and disable them.
- Enable services and restart them.
- Create users.
- Add users to groups.
- Apply user-wide configuration using git.
- Run custom user tasks.
By default this role applies the following configuration:
- Installs the base software:
- apt-transport-https
- bzip2
- ca-certificates
- curl
- sudo
- unrar-free
- unzip
- vim
- wget
- xz-utils
- Installs the base developer software:
- bats
- bchunks
- build-essential
- emacs
- flac
- git
- libtext-csv-perl
- make
- meld
- retext
- ssh-askpass
- texlive-bibtex-extra
- texlive-latex-base
- texlive-latex-extra
- tree
- Installs the microcontroller developer software:
- Via apt:
- clang
- fritzing
- fritzing-data
- fritzing-parts
- python3
- python3-pip
- Via pip:
- platformio
- Configures the base software:
- vim
- Creates a .vimrc configuration file on each user home directory.
- Enable syntax highlight.
- Set two spaces instead of tabs.
- Configures the base developer software:
- emacs
- Creates a .emacs.d configuration folder on each user home directory.
- Enable line numbers.
- Set themes folder.
- Set wintermute theme.
- Use spaces instead of tabs.
- Configures the microcontroller developer software:
- emacs
- Set platformio plugin plugin.
- Set keybindings:
- C-c i b: Build the project without auto-uploading.
- C-c i c: Clean compiled objects.
- C-c i u: Build and upload.
- groups - Adds users to the groups:
- dialout.
- udev - Adds the rules file /etc/udev/rules.d/99-platformio-udev.rules.
- Creates the following home directory layout:
home/ ├── .emacs.d │ ├── config │ │ ├── base.el │ │ ├── micro.el | │ └── org.el │ ├── init.el │ └── themes │ └── wintermute-theme.el └── .vimrc
- Modifies the following files:
home/ ├── .bashrc └── .profile