65 lines
1.9 KiB
YAML
65 lines
1.9 KiB
YAML
# vim: set filetype=yaml.ansible :
|
|
#
|
|
## Package: direnv
|
|
## Description: automatically read env files when changing directories
|
|
## Version: latest
|
|
## Methods: system
|
|
## Helpers: -
|
|
---
|
|
- name: Set direnv default facts # {{{
|
|
ansible.builtin.set_fact:
|
|
direnv:
|
|
methods:
|
|
- source
|
|
- system
|
|
pkgname:
|
|
RedHat: direnv
|
|
Alpine: direnv
|
|
Debian: direnv
|
|
Darwin: direnv
|
|
Archlinux: direnv
|
|
install_url: github.com/direnv/direnv
|
|
pkg_deps:
|
|
- go
|
|
version: "{{ direnv_version | default('latest') }}"
|
|
# }}}
|
|
- name: Configure direnv
|
|
when:
|
|
- "'direnv' not in __configured"
|
|
block:
|
|
- name: Set direnv install method
|
|
when:
|
|
- direnv_imethod is undefined
|
|
ansible.builtin.set_fact:
|
|
direnv_imethod: "{{ imethod if imethod in direnv.methods else direnv.methods[0] }}"
|
|
|
|
- name: Append direnv to pkg_sys
|
|
when:
|
|
- direnv_imethod == "system"
|
|
block:
|
|
- name: Queue direnv system install
|
|
ansible.builtin.set_fact:
|
|
pkg_sys: "{{ pkg_sys + [direnv.pkgname[os_family]] }}"
|
|
|
|
- name: Finalise direnv system install
|
|
ansible.builtin.set_fact:
|
|
direnv_install: "{{ direnv_imethod }}={{ direnv.pkgname[os_family] }}"
|
|
|
|
- name: Set direnv build facts
|
|
when:
|
|
- direnv_imethod == 'source'
|
|
block:
|
|
- name: Set direnv source install facts
|
|
ansible.builtin.set_fact:
|
|
direnv_go_install:
|
|
url: "{{ direnv.install_url }}@{{ direnv.version }}"
|
|
bind: "{{ path_bin }}/direnv"
|
|
|
|
- name: Finalise direnv source install
|
|
ansible.builtin.set_fact:
|
|
direnv_install: "{{ direnv_imethod }}={{ direnv_go_install }}"
|
|
|
|
- name: Finalize direnv configuration
|
|
ansible.builtin.set_fact:
|
|
__configured: "{{ __configured | combine( { 'direnv': direnv_install } ) }}"
|