- 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