diff --git a/archivebox/builtin_plugins/ansible/roles/load_binary/tasks/main.yml b/archivebox/builtin_plugins/ansible/roles/load_binary/tasks/main.yml index 1c4cf164..9139bb8d 100755 --- a/archivebox/builtin_plugins/ansible/roles/load_binary/tasks/main.yml +++ b/archivebox/builtin_plugins/ansible/roles/load_binary/tasks/main.yml @@ -17,7 +17,7 @@ - name: 'Get installed binary abspath: {{name}}' command: 'env PATH="{{PATH}}:$PATH" which {{bin_name}}' register: BINARY_ABSPATH - changed_when: BINARIES[name].abspath|default('NO VERSION FOUND') not in BINARY_ABSPATH.stdout + changed_when: False - set_fact: bin_name: "{{BINARY_ABSPATH.stdout|basename or bin_name}}" @@ -27,7 +27,7 @@ - name: 'Get installed binary version: {{name}}' command: 'env PATH="{{PATH}}:$PATH" {{version_cmd}}' register: BINARY_VERSION - changed_when: BINARIES[name].version|default('NO VERSION FOUND') not in BINARY_VERSION.stdout + changed_when: False - name: 'Updating BINARIES with loaded abspaths & versions: {{name}}' @@ -49,7 +49,7 @@ }) }}" cacheable: true - when: BINARY_ABSPATH.stdout and BINARY_VERSION.stdout + changed_when: True - name: 'Symlink installed binary into lib bin folder: {{name}}' file: @@ -57,8 +57,7 @@ dest: "{{ LIB_DIR_BIN }}/{{ name }}" state: link force: true - when: BINARY_ABSPATH.stdout and BINARY_VERSION.stdout - changed_when: False + when: BINARY_VERSION.stdout_lines|first|regex_replace('^.*?([\\d+\\.]+).*$', '\\1')|length - debug: msg: @@ -69,6 +68,8 @@ name: bin_name: version_cmd: + abspath: + version: PATH: BINARY_ABSPATH: BINARY_VERSION: diff --git a/archivebox/builtin_plugins/ansible/roles/load_binary/vars/main.yml b/archivebox/builtin_plugins/ansible/roles/load_binary/vars/main.yml index c8ba73b0..99c921f0 100644 --- a/archivebox/builtin_plugins/ansible/roles/load_binary/vars/main.yml +++ b/archivebox/builtin_plugins/ansible/roles/load_binary/vars/main.yml @@ -1,4 +1,5 @@ DATA_DIR: '{{playbook_dir}}' + LIB_DIR: '{{DATA_DIR}}/lib' LIB_DIR_BIN: '{{LIB_DIR}}/bin' DEFAULT_PATH: /bin diff --git a/archivebox/builtin_plugins/ansible/roles/setup_lib_npm/vars/main.yml b/archivebox/builtin_plugins/ansible/roles/setup_lib_npm/vars/main.yml index 82fb2ea8..2e3e5700 100644 --- a/archivebox/builtin_plugins/ansible/roles/setup_lib_npm/vars/main.yml +++ b/archivebox/builtin_plugins/ansible/roles/setup_lib_npm/vars/main.yml @@ -1,7 +1,9 @@ DATA_DIR: '{{playbook_dir}}' + LIB_DIR: '{{DATA_DIR}}/lib' LIB_DIR_BIN: '{{LIB_DIR}}/bin' LIB_DIR_NPM: '{{LIB_DIR}}/npm' LIB_DIR_NPM_BIN: '{{LIB_DIR_NPM}}/node_modules/.bin' + MIN_NODE_VERSION: '20.0.0' MIN_NPM_VERSION: '10.0.0' diff --git a/archivebox/builtin_plugins/ansible/roles/setup_lib_pip/vars/main.yml b/archivebox/builtin_plugins/ansible/roles/setup_lib_pip/vars/main.yml index 0c8ba99b..317cf8b4 100644 --- a/archivebox/builtin_plugins/ansible/roles/setup_lib_pip/vars/main.yml +++ b/archivebox/builtin_plugins/ansible/roles/setup_lib_pip/vars/main.yml @@ -1,7 +1,9 @@ DATA_DIR: '{{playbook_dir}}' + LIB_DIR: '{{DATA_DIR}}/lib' LIB_DIR_BIN: '{{LIB_DIR}}/bin' LIB_DIR_PIP: '{{LIB_DIR}}/pip' LIB_DIR_PIP_BIN: '{{LIB_DIR_PIP}}/venv/bin' + MIN_PYTHON_VERSION: '3.10.0' MIN_PIP_VERSION: '22.0' diff --git a/archivebox/builtin_plugins/puppeteer/install_puppeteer.yml b/archivebox/builtin_plugins/puppeteer/install_puppeteer.yml index d396125d..6085952c 100755 --- a/archivebox/builtin_plugins/puppeteer/install_puppeteer.yml +++ b/archivebox/builtin_plugins/puppeteer/install_puppeteer.yml @@ -4,6 +4,7 @@ hosts: localhost gather_facts: true vars: + DATA_DIR: '{{playbook_dir}}' LIB_DIR: '{{DATA_DIR}}/lib' LIB_DIR_BIN: '{{LIB_DIR}}/bin' LIB_DIR_BROWSERS: '{{LIB_DIR}}/browsers' @@ -38,31 +39,29 @@ name: puppeteer PATH: '{{BINPROVIDERS.npm.PATH}}' - - name: Load chrome binaries from environment PATH - include_tasks: roles/load_binary/tasks/main.yml - vars: - name: 'chrome' - bin_name: '{{chrome_executable}}' - PATH: '{{ansible_env.PATH}}' - with_items: - - chrome - # - chrome-browser - # - chromium - # - chromium-browser - # - google-chrome - # - google-chrome-browser - # - google-chrome-stable - # - google-chrome-beta - # - google-chrome-canary - # - google-chrome-unstable - # - google-chrome-dev - loop_control: - loop_var: chrome_executable - # break_when: - # - BINARIES.chrome.version|default('') - - # - debug: - # msg: "{{ {'BINARIES': BINARIES, 'BINPROVIDERS': BINPROVIDERS} }}" + # - name: Load chrome binaries from environment PATH + # include_role: + # name: load_binary + # vars: + # name: 'chrome' + # bin_name: '{{chrome_executable}}' + # PATH: '{{ansible_env.PATH}}' + # loop: + # - chrome + # - chrome-browser + # - chromium + # - chromium-browser + # - google-chrome + # - google-chrome-browser + # - google-chrome-stable + # - google-chrome-beta + # - google-chrome-canary + # - google-chrome-unstable + # - google-chrome-dev + # loop_control: + # loop_var: chrome_executable + # break_when: + # - BINARIES.chrome.version|default('') ################################################################################### @@ -101,12 +100,15 @@ - set_fact: PUPPETEER_BINARIES: chrome: + name: 'chrome' bin_name: 'chrome' abspath: "{{CHROME_ABSPATH|default(BINARIES.chrome.abspath) or None}}" version: "{{CHROME_VERSION|default(BINARIES.chrome.version) or None}}" symlink: "{{LIB_DIR_BIN}}/chrome" version_cmd: "chrome --version" + version_stdout: "{{CHROME_VERSION_FULL.stdout}}" binprovider: 'puppeteer' + PATH: "{{LIB_DIR_BIN}}" - name: Check that installed Chrome matches expected version assert: diff --git a/archivebox/builtin_plugins/singlefile/install_singlefile.yml b/archivebox/builtin_plugins/singlefile/install_singlefile.yml index 185f5ad0..b155d434 100755 --- a/archivebox/builtin_plugins/singlefile/install_singlefile.yml +++ b/archivebox/builtin_plugins/singlefile/install_singlefile.yml @@ -20,7 +20,7 @@ community.general.npm: name: 'single-file-cli@1.1.54' state: "present" - path: '{{BINPROVIDERS.npm.root_path}}' + path: '{{BINPROVIDERS.npm.lib_dir_npm}}' - name: Load single-file binary from installed NPM package include_role: