- 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 }}"'


