From e705ad6cd454701a48aa805879bb5ceeeacb4e37 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 4 Dec 2023 13:25:48 -0500 Subject: [PATCH 1/5] calibre-web/defaults/main.yml: Set 'calibreweb_venv_wipe: True' --- roles/calibre-web/defaults/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 250deeaf6..4512e4e53 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -17,6 +17,7 @@ calibreweb_repo_url: https://github.com/janeczku/calibre-web calibreweb_version: master # WAS: master, 0.6.4, 0.6.5, 0.6.6, 0.6.7, 0.6.8, 0.6.9 +calibreweb_venv_wipe: True calibreweb_venv_path: /usr/local/calibre-web-py3 calibreweb_exec_path: "{{ calibreweb_venv_path }}/cps.py" From 02471e9402efcce1658c01d2c57c1596651bacc4 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 4 Dec 2023 14:21:30 -0500 Subject: [PATCH 2/5] calibre-web/tasks/install.yml: Enact calibreweb_venv_wipe & clone as nec --- roles/calibre-web/tasks/install.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/roles/calibre-web/tasks/install.yml b/roles/calibre-web/tasks/install.yml index 453a7f8bd..4f6ce8f65 100644 --- a/roles/calibre-web/tasks/install.yml +++ b/roles/calibre-web/tasks/install.yml @@ -27,10 +27,16 @@ line: ' ' state: present -- name: Remove previous virtual environment {{ calibreweb_venv_path }} +- name: "Remove previous virtual environment {{ calibreweb_venv_path }} -- if 'calibreweb_venv_wipe: True'" file: path: "{{ calibreweb_venv_path }}" state: absent + when: calibreweb_venv_wipe + +- name: Does {{ calibreweb_venv_path }} exist? + stat: + path: "{{ calibreweb_venv_path }}" # /usr/local/calibre-web-py3 + register: calibreweb_venv - name: "Create 3 Calibre-Web folders to store data and config files: {{ calibreweb_home }}, {{ calibreweb_venv_path }}, {{ calibreweb_config }} (all set to {{ calibreweb_user }}:{{ apache_user }}) (default to 0755)" file: @@ -41,7 +47,7 @@ with_items: - "{{ calibreweb_home }}" # /library/calibre-web - "{{ calibreweb_config }}" # /library/calibre-web/config - - "{{ calibreweb_venv_path }}" # /usr/local/calibre-web-py3 + - "{{ calibreweb_venv_path }}" # FYI since May 2021, Calibre-Web (major releases) can be installed with pip: # https://pypi.org/project/calibreweb/ @@ -50,13 +56,14 @@ # https://github.com/janeczku/calibre-web/pull/927 # https://github.com/janeczku/calibre-web/pull/1459 -- name: Clone i.e. download Calibre-Web ({{ calibreweb_version }}) from {{ calibreweb_repo_url }} to {{ calibreweb_venv_path }} (~94 MB initially, ~115+ MB later) +- name: "Clone i.e. download Calibre-Web ({{ calibreweb_version }}) from {{ calibreweb_repo_url }} to {{ calibreweb_venv_path }} (~94 MB initially, ~115+ MB later) -- if {{ calibreweb_venv_path }} created just above" git: repo: "{{ calibreweb_repo_url }}" # e.g. https://github.com/janeczku/calibre-web dest: "{{ calibreweb_venv_path }}" force: yes #depth: 1 # 2023-11-04: Full clone for now, to help @deldesir & wider community testing version: "{{ calibreweb_version }}" # e.g. master, 0.6.21 + when: not calibreweb_venv.stat.exists - name: If Calibre-Web is being enhanced with audio/video "books" too, install additional prereqs (CAN TAKE 3+ MINUTES, WIP) shell: | From da785cb8c4f7c027f1a6a0b001ec4d183128acd7 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 4 Dec 2023 14:24:45 -0500 Subject: [PATCH 3/5] New default 'calibreweb_venv_wipe: False' for TDD! --- roles/calibre-web/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 4512e4e53..1ae41bef8 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -17,7 +17,7 @@ calibreweb_repo_url: https://github.com/janeczku/calibre-web calibreweb_version: master # WAS: master, 0.6.4, 0.6.5, 0.6.6, 0.6.7, 0.6.8, 0.6.9 -calibreweb_venv_wipe: True +calibreweb_venv_wipe: False # 2024-12-04: NEW default TDD (Test-Driven Dev!) calibreweb_venv_path: /usr/local/calibre-web-py3 calibreweb_exec_path: "{{ calibreweb_venv_path }}/cps.py" From 5feecc022ec59c4bdfd8515a935d8c7df6cc20c0 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 4 Dec 2023 15:06:18 -0500 Subject: [PATCH 4/5] calibre-web/tasks/install.yml: Auto-upgrade xklb & yt-dlp for TDD --- roles/calibre-web/tasks/install.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/roles/calibre-web/tasks/install.yml b/roles/calibre-web/tasks/install.yml index 4f6ce8f65..5bc947a99 100644 --- a/roles/calibre-web/tasks/install.yml +++ b/roles/calibre-web/tasks/install.yml @@ -65,13 +65,17 @@ version: "{{ calibreweb_version }}" # e.g. master, 0.6.21 when: not calibreweb_venv.stat.exists -- name: If Calibre-Web is being enhanced with audio/video "books" too, install additional prereqs (CAN TAKE 3+ MINUTES, WIP) +- name: If Calibre-Web is being enhanced with audio/video "books" too, install/upgrade additional prereqs (CAN TAKE 3+ MINUTES, WIP) shell: | if [ -f {{ calibreweb_venv_path }}/scripts/lb-wrapper ]; then apt install ffmpeg pipx -y - pipx install xklb - ln -sf /root/.local/bin/lb /usr/local/bin/lb - ln -sf /root/.local/pipx/venvs/xklb/bin/yt-dlp /usr/local/bin/yt-dlp + if lb --version; then + pipx upgrade --include-injected xklb + else + pipx install xklb + ln -sf /root/.local/bin/lb /usr/local/bin/lb + ln -sf /root/.local/pipx/venvs/xklb/bin/yt-dlp /usr/local/bin/yt-dlp + fi cp {{ calibreweb_venv_path }}/scripts/lb-wrapper /usr/local/bin/lb-wrapper chmod a+x /usr/local/bin/lb-wrapper fi From 47da9a9cbaaf1983a2f1e269ac6cd3396adaa456 Mon Sep 17 00:00:00 2001 From: A Holt Date: Mon, 4 Dec 2023 15:28:58 -0500 Subject: [PATCH 5/5] calibre-web/defaults/main.yml: Fix typo "2023-12-04" --- roles/calibre-web/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/calibre-web/defaults/main.yml b/roles/calibre-web/defaults/main.yml index 1ae41bef8..d4b2765a4 100644 --- a/roles/calibre-web/defaults/main.yml +++ b/roles/calibre-web/defaults/main.yml @@ -17,7 +17,7 @@ calibreweb_repo_url: https://github.com/janeczku/calibre-web calibreweb_version: master # WAS: master, 0.6.4, 0.6.5, 0.6.6, 0.6.7, 0.6.8, 0.6.9 -calibreweb_venv_wipe: False # 2024-12-04: NEW default TDD (Test-Driven Dev!) +calibreweb_venv_wipe: False # 2023-12-04: NEW default TDD (Test-Driven Dev!) calibreweb_venv_path: /usr/local/calibre-web-py3 calibreweb_exec_path: "{{ calibreweb_venv_path }}/cps.py"