Add support for Fedora to various roles
This commit is contained in:
51
roles/jp/tasks/RedHat.yaml
Normal file
51
roles/jp/tasks/RedHat.yaml
Normal file
@@ -0,0 +1,51 @@
|
||||
---
|
||||
- name: stat executable
|
||||
stat:
|
||||
path: '{{ansible_env.HOME}}/.local/bin/jp'
|
||||
register: jp_stat
|
||||
|
||||
- name: get installed version
|
||||
when: jp_stat.stat.exists
|
||||
command: jp --version
|
||||
changed_when: false
|
||||
register: jp_version
|
||||
|
||||
- name: extract installed version
|
||||
when: jp_stat.stat.exists
|
||||
set_fact:
|
||||
jp_installed_version:
|
||||
'{{jp_version.stdout.strip() | regex_replace("^.*(\d+\.\d+\.\d+).*$", "\1")}}'
|
||||
|
||||
- name: get latest release
|
||||
uri:
|
||||
url: 'https://api.github.com/repos/jmespath/jp/releases/latest'
|
||||
register: latest
|
||||
|
||||
- name: determine if jp needs installed
|
||||
set_fact:
|
||||
jp_needs_installed:
|
||||
'{{not jp_stat.stat.exists or jp_installed_version != latest.json.tag_name}}'
|
||||
arch_dict: {x86_64: amd64, arm64: arm64}
|
||||
|
||||
- name: select asset name
|
||||
when: jp_needs_installed
|
||||
set_fact:
|
||||
asset_query:
|
||||
'[?contains(name, `jp-linux-{{arch_dict[ansible_architecture]}}`)] | [0]'
|
||||
- name: select asset
|
||||
when: jp_needs_installed
|
||||
set_fact:
|
||||
asset: '{{latest.json.assets | to_json | from_json | json_query(asset_query)}}'
|
||||
|
||||
- name: create directory
|
||||
when: jp_needs_installed
|
||||
file:
|
||||
path: '{{ansible_env.HOME}}/.local/bin'
|
||||
state: directory
|
||||
|
||||
- name: install executable
|
||||
when: jp_needs_installed
|
||||
get_url:
|
||||
url: '{{asset.browser_download_url}}'
|
||||
dest: '{{ansible_env.HOME}}/.local/bin/jp'
|
||||
mode: '0755'
|
||||
Reference in New Issue
Block a user