# roles/calibre/tasks/main.yml requires calibre_via_python (to be True) before calling this script. # Seems to work with just about any Linux (Fedora 18 on OLPC XO Laptops??) and deals with dependencies. # BUT IS ARCH DEPENDENT: requires x86_64 or i686 as of early 2018. - name: Download latest linux-installer.py from GitHub to calibre-installer.py get_url: url: "{{ calibre_src_url }}" dest: "{{ downloads_dir }}/calibre-installer.py" mode: 0755 force: yes backup: yes timeout: "{{ download_timeout }}" register: calibre_download_output when: internet_available | bool # ALWAYS DEFINED, DESPITE get_url DOCUMENTATION CLAIM... # - debug: # msg: "{{ calibre_download_output.src }}" # # DEFINED ONLY WHEN /opt/iiab/downloads/calibre-installer.py CHANGES # - debug: # msg: "{{ calibre_download_output.backup_file }}" # OOPS BAD IDEA: changes in https://github.com/kovidgoyal/calibre/commits/master/setup/linux-installer.py are not sync'd with Calibre releases! # - name: FORCE AN UPGRADE IF calibre-installer.py HAS CHANGED, IF SO ORIGINAL IS SAVED TO {{ calibre_download_output.backup_file }} # file: # path: /usr/bin/calibre-uninstall # state: absent # when: calibre_download_output.backup_file is defined - name: Check if calibre-installer.py exists in /opt/iiab/downloads stat: path: "{{ downloads_dir }}/calibre-installer.py" register: calib_inst # MOVED UP TO roles/calibre/tasks/main.yml (now checks for /usr/bin/calibre) #- name: Check if calibre-uninstall exists in /usr/bin # stat: # path: "/usr/bin/calibre-uninstall" # register: calib_uninst - name: FAIL (force Ansible to exit) IF /opt/iiab/downloads/calibre-installer.py OR Internet ARE MISSING # meta: end_play fail: msg: "{{ downloads_dir }}/calibre-installer.py and an Internet connection are REQUIRED in order to install Calibre!" when: (not calib_inst.stat.exists) or (not internet_available) #when: (not calib_inst.stat.exists) or (not internet_available and not calib_uninst.stat.exists) # INSTALL THE LATEST CALIBRE (calibre, calibredb, calibre-server etc) - name: Run calibre-installer.py to install Calibre programs into /usr/bin shell: "{{ downloads_dir }}/calibre-installer.py >> /dev/null" #args: # creates: /usr/bin/calibre-uninstall when: internet_available | bool