Update intellij task for updating

This commit is contained in:
Przemyslaw Grondek 2023-06-02 13:51:13 +02:00
parent a96de9395d
commit cf122b6a52
2 changed files with 71 additions and 40 deletions

View File

@ -0,0 +1,56 @@
- name: install jmespath for json_query
become: yes
apt:
update_cache: yes
pkg:
- python3-jmespath
- name: "Get IntelliJ version"
uri:
url: https://data.services.jetbrains.com/products/releases?code=IIU
body_format: json
register: idea_info
- name: Create temp dir
file:
path: "{{ tmp_dir }}"
state: directory
- name: "Download IntelliJ Ultimate"
become: yes
unarchive:
src: "{{ idea_info.json | json_query('IIU[0].downloads.linux.link') }}"
dest: "{{ tmp_dir }}"
remote_src: yes
- name: get folder name
shell: ls "{{ tmp_dir }}"
register: dir_name
- name: Check if old version exists
stat:
path: "{{idea_dir}}"
register: intellij_dir
- name: Move old version if available
become: yes
command: mv {{idea_dir}} {{idea_dir}}-{{local_intellij_version}}
when:
- intellij_dir.stat.exists
- name: Copy to final directory
become: yes
command: "cp -ra {{ tmp_dir }}/{{ dir_name.stdout }} {{ idea_dir }}"
- name: Remove temp directory
become: yes
file:
path: "{{ tmp_dir }}"
state: absent
- name: Create symbolic link
become: yes
file:
src: "/opt/idea/bin/idea.sh"
dest: "/usr/local/bin/idea"
state: link

View File

@ -1,49 +1,24 @@
- name: install jmespath for json_query
become: yes
apt:
update_cache: yes
pkg:
- python3-jmespath
- name: "Get IntelliJ version"
uri:
url: https://data.services.jetbrains.com/products/releases?code=IIU
body_format: json
register: idea_info
- debug: msg="{{ idea_info.json | json_query('IIU[0].downloads.linux.link') }}"
- name: "Check if intellij is installed"
stat:
path: "{{idea_dir}}/product-info.json"
register: local_version_info_file
- name: Create temp dir
file:
path: "{{ tmp_dir }}"
state: directory
- name: "Check installed version"
when:
- local_version_info_file.stat.exists
shell: cat {{idea_dir}}/product-info.json
register: local_version_info_file
- name: "Download IntelliJ Ultimate"
become: yes
unarchive:
src: "{{ idea_info.json | json_query('IIU[0].downloads.linux.link') }}"
dest: "{{ tmp_dir }}"
remote_src: yes
- name: "Set version info fact"
set_fact:
local_intellij_version: "{{ local_version_info_file.stdout | from_json | json_query('version') }}"
upstream_intellij_version: "{{ idea_info.json | json_query('IIU[0].version') }}"
- name: get folder name
shell: ls "{{ tmp_dir }}"
register: dir_name
- name: Copy to final directory
become: yes
command: "cp -ra {{ tmp_dir }}/{{ dir_name.stdout }} {{ idea_dir }}"
- name: Remove temp directory
become: yes
file:
path: "{{ tmp_dir }}"
state: absent
- name: Create symbolic link
become: yes
file:
src: "/opt/idea/bin/idea.sh"
dest: "/usr/local/bin/idea"
state: link
- import_tasks: install.yml
when: local_version_info_file is undefined or local_intellij_version != upstream_intellij_version