refactor
This commit is contained in:
62
ansible/tasks/global/utils.yml
Normal file
62
ansible/tasks/global/utils.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
- name: Process utils files
|
||||
block:
|
||||
- name: Load DOTFILES_PATH environment variable
|
||||
ansible.builtin.set_fact:
|
||||
dotfiles_path: "{{ lookup('env', 'DOTFILES_PATH') }}"
|
||||
become: false
|
||||
|
||||
- name: Ensure ~/.local/bin exists
|
||||
ansible.builtin.file:
|
||||
path: "{{ ansible_env.HOME }}/.local/bin"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
become: false
|
||||
|
||||
- name: Scan utils folder for files
|
||||
ansible.builtin.find:
|
||||
paths: "{{ dotfiles_path }}/ansible/tasks/global/utils"
|
||||
file_type: file
|
||||
register: utils_files
|
||||
become: false
|
||||
|
||||
- name: Scan utils folder for Go projects (directories with go.mod)
|
||||
ansible.builtin.find:
|
||||
paths: "{{ dotfiles_path }}/ansible/tasks/global/utils"
|
||||
file_type: directory
|
||||
recurse: true
|
||||
register: utils_dirs
|
||||
become: false
|
||||
|
||||
- name: Filter directories that contain go.mod files
|
||||
ansible.builtin.stat:
|
||||
path: "{{ item.path }}/go.mod"
|
||||
loop: "{{ utils_dirs.files }}"
|
||||
register: go_mod_check
|
||||
become: false
|
||||
|
||||
- name: Create symlinks for utils scripts
|
||||
ansible.builtin.file:
|
||||
src: "{{ item.path }}"
|
||||
dest: "{{ ansible_env.HOME }}/.local/bin/{{ item.path | basename }}"
|
||||
state: link
|
||||
loop: "{{ utils_files.files }}"
|
||||
when: not item.path.endswith('.go')
|
||||
become: false
|
||||
|
||||
- name: Compile standalone Go files and place binaries in ~/.local/bin
|
||||
ansible.builtin.command:
|
||||
cmd: go build -o "{{ ansible_env.HOME }}/.local/bin/{{ item.path | basename | regex_replace('\.go$', '') }}" "{{ item.path }}"
|
||||
loop: "{{ utils_files.files }}"
|
||||
when: item.path.endswith('.go')
|
||||
become: false
|
||||
|
||||
- name: Compile Go projects and place binaries in ~/.local/bin
|
||||
ansible.builtin.command:
|
||||
cmd: go build -o "{{ ansible_env.HOME }}/.local/bin/{{ item.item.path | basename }}" .
|
||||
chdir: "{{ item.item.path }}"
|
||||
loop: "{{ go_mod_check.results }}"
|
||||
when: item.stat.exists
|
||||
become: false
|
||||
tags:
|
||||
- utils
|
||||
Reference in New Issue
Block a user