linux-config/roles/base/tasks/main.yml
Sagi Dayan 26e5b1ea42
Major update - move to symlinks for some dotfiles.
Signed-off-by: Sagi Dayan <sagidayan@gmail.com>
2024-03-27 14:09:11 +02:00

199 lines
4.4 KiB
YAML

- name: Installing packages
become: true
package:
name:
- zsh
- curl
- gcc
- make
- wget
- git
- ranger
- jq
- nodejs
- npm
- man-db
- clang
- podman
- ripgrep
- lsd
- gitui
- NetworkManager-tui
- tldr
- bat
- fzf
state: present
- name: Copy gitconfig base
copy:
src: dotfiles/gitconfig
dest: ~/.gitconfig
force: no
mode: preserve
- name: Setting up oh-my-zsh
git:
repo: https://github.com/ohmyzsh/ohmyzsh.git
dest: ~/.oh-my-zsh
version: master
- name: Making sure to use ZSH as shell
become: true
user:
name: "{{ running_user }}"
shell: /bin/zsh
- name: Linking up zsh config (zshrc)
file:
src: "{{ playbook_dir }}/files/dotfiles/zshrc"
dest: ~/.zshrc
state: link
owner: "{{ ansible_user_id }}"
group: "{{ ansible_user_id }}"
- name: Add ranger devicons plugin repo
git:
repo: https://github.com/alexanderjeurissen/ranger_devicons.git
dest: ~/.config/ranger/plugins/ranger_devicons
version: main
- name: Validate ranger config file
changed_when: false
file:
path: ~/.config/ranger/rc.conf
state: touch
mode: u=rw,g=r,o=r
- name: Activate ranger devicons plugin
lineinfile:
path: ~/.config/ranger/rc.conf
line: 'default_linemode devicons'
state: present
- name: Verifying shell config folder
file:
path: ~/.shellconfig
state: directory
mode: '0755'
- name: Verifying shell autocomplete config folder
file:
path: ~/.shellconfig/autocomplete
state: directory
mode: '0755'
- name: Verifying shell cheat config folder
file:
path: ~/.shellconfig/cheat
state: directory
mode: '0755'
- name: Sync Common shell settings...
changed_when: false
copy:
src: dotfiles/shellconfig/common.sh
dest: ~/.shellconfig/common.sh
force: yes
mode: preserve
- name: Sync Cheat script
changed_when: false
copy:
src: dotfiles/shellconfig/cheat.sh
dest: ~/.shellconfig/cheat.sh
force: yes
mode: u+rx,g-rx,o-rwx
- name: Copy shell aliases
copy:
src: dotfiles/shellconfig/aliases.sh
dest: ~/.shellconfig/aliases.sh
force: no
mode: preserve
- name: Copy shell functions
copy:
src: dotfiles/shellconfig/functions.sh
dest: ~/.shellconfig/functions.sh
force: no
mode: preserve
- name: Copy shell environment
copy:
src: dotfiles/shellconfig/environment.sh
dest: ~/.shellconfig/environment.sh
force: no
mode: preserve
- name: Copy topics cheat sheet list
copy:
src: dotfiles/shellconfig/cheat/topics
dest: ~/.shellconfig/cheat/topics
force: yes
mode: preserve
- name: Install modern UNIX tools
include_role:
name: modern_unix_tools
- name: Copy workspaces files
block:
- name: Make sure directory is there
file:
path: ~/.shellconfig/workspaces
state: directory
mode: '0755'
- name: Copy json
copy:
src: dotfiles/shellconfig/workspaces/workspaces.json
dest: ~/.shellconfig/workspaces/workspaces.json
force: no
mode: preserve
- name: Copy add script
copy:
src: dotfiles/shellconfig/workspaces/add_workspace.sh
dest: ~/.shellconfig/workspaces/add_workspace.sh
force: yes
mode: preserve
- name: Copy open script
copy:
src: dotfiles/shellconfig/workspaces/open_workspace.sh
dest: ~/.shellconfig/workspaces/open_workspace.sh
force: yes
mode: preserve
- name: Copy delete script
copy:
src: dotfiles/shellconfig/workspaces/delete_workspace.sh
dest: ~/.shellconfig/workspaces/delete_workspace.sh
force: yes
mode: preserve
# Gitui
- name: Verifying gitui config
file:
path: ~/.config/gitui
state: directory
mode: '0755'
- name: Copy gitui keybindings
copy:
src: dotfiles/gitui/key_bindings.ron
dest: ~/.config/gitui/key_bindings.ron
force: yes
mode: preserve
- name: Copy gitui theme config
copy:
src: dotfiles/gitui/theme.ron
dest: ~/.config/gitui/theme.ron
force: yes
mode: preserve
# bat (cat)
- name: verify Bat (better Cat) theme
changed_when: false
ansible.builtin.lineinfile:
path: "~/.shellconfig/common.sh"
regexp: "^export BAT_THEME="
line: 'export BAT_THEME="${{ theme }}"'