From 9efb5d6c155df2eeff971b21f56bc03e221c5ce4 Mon Sep 17 00:00:00 2001 From: "Kenneth Benzie (Benie)" Date: Sun, 30 Oct 2022 23:23:23 +0000 Subject: [PATCH] Add role for jp on macOS and Debian --- roles/jp/tasks/Darwin.yaml | 38 ++++++++++++++++++++++++++++++++++++++ roles/jp/tasks/Debian.yaml | 6 ++++++ roles/jp/tasks/main.yaml | 4 ++++ 3 files changed, 48 insertions(+) create mode 100644 roles/jp/tasks/Darwin.yaml create mode 100644 roles/jp/tasks/Debian.yaml create mode 100644 roles/jp/tasks/main.yaml diff --git a/roles/jp/tasks/Darwin.yaml b/roles/jp/tasks/Darwin.yaml new file mode 100644 index 0000000..2ed2a7a --- /dev/null +++ b/roles/jp/tasks/Darwin.yaml @@ -0,0 +1,38 @@ +--- +- name: get latest github release + uri: + url: https://api.github.com/repos/jmespath/jp/releases/latest + register: latest + +# TODO: Support arm64 +- set_fact: + asset_query: '[?contains(name, `jp-darwin-amd64`)] | [0]' + assets: '{{latest.json.assets}}' + latest_version: '{{latest.json.tag_name}}' + jp_exe: '{{ansible_env.HOME}}/.local/bin/jp' + +- name: check if already installed + stat: + path: '{{jp_exe}}' + register: jp_exe + +- name: get installed version + when: jp_stat.stat.exists == True + command: '{{jp_exe}} --version' + register: jp_version_output + changed_when: false + +- when: jp_stat.stat.exists == True + set_fact: + installed_version: + '{{jp_version_output.stdout.strip() | regex_replace("^.*(\d+\.\d+\.\d+).*$", "\1")}}' + +- set_fact: + asset: '{{assets | to_json | from_json | json_query(asset_query)}}' + +- name: download executable + when: installed_version is not defined or installed_version != latest_version + get_url: + url: '{{asset.browser_download_url}}' + dest: '{{jp_exe}}' + mode: +x diff --git a/roles/jp/tasks/Debian.yaml b/roles/jp/tasks/Debian.yaml new file mode 100644 index 0000000..54feb36 --- /dev/null +++ b/roles/jp/tasks/Debian.yaml @@ -0,0 +1,6 @@ +--- +- name: install apt package + become: true + apt: + name: jp + state: latest diff --git a/roles/jp/tasks/main.yaml b/roles/jp/tasks/main.yaml new file mode 100644 index 0000000..8aec01d --- /dev/null +++ b/roles/jp/tasks/main.yaml @@ -0,0 +1,4 @@ +--- +- assert: + that: ansible_os_family != "Windows" +- include_tasks: '{{ansible_os_family}}.yaml'