mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2025-05-12 22:25:44 -04:00
75 lines
2.3 KiB
YAML
Executable file
75 lines
2.3 KiB
YAML
Executable file
#!/usr/bin/env ansible-playbook
|
|
---
|
|
|
|
- import_playbook: load_binaries.yml
|
|
vars:
|
|
load_binaries:
|
|
python: {bin_name: 'python3', version_cmd: 'python3 --version'}
|
|
pip: {bin_name: 'pip3', version_cmd: 'pip3 --version'}
|
|
|
|
- name: "Install python, pip, and pipx"
|
|
hosts: localhost
|
|
gather_facts: no
|
|
vars:
|
|
DATA_DIR: '/Volumes/NVME/Users/squash/Code/archiveboxes/archivebox7/data4'
|
|
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.11.9'
|
|
MIN_PIP_VERSION: '24.2'
|
|
state: 'present'
|
|
install_pip:
|
|
pip:
|
|
bin_name: 'pip'
|
|
packages: ['pip', 'setuptools']
|
|
# ytdlp:
|
|
# bin_name: 'yt-dlp'
|
|
# packages: ['yt-dlp']
|
|
tasks:
|
|
|
|
- name: Make sure lib folders exist
|
|
file:
|
|
path: '{{item}}'
|
|
state: directory
|
|
recurse: true
|
|
loop:
|
|
- '{{LIB_DIR_PIP}}'
|
|
- '{{LIB_DIR_BIN}}'
|
|
when: BINPROVIDERS.pip is not defined
|
|
|
|
###################################################################################
|
|
|
|
- assert:
|
|
that:
|
|
- BINARIES.python.version is version(MIN_PYTHON_VERSION, '>=')
|
|
- BINARIES.pip.version is version(MIN_PIP_VERSION, '>=')
|
|
quiet: true
|
|
when: BINPROVIDERS.pip is not defined
|
|
|
|
- name: "Install pip packages: {{install_pip}}"
|
|
ansible.builtin.pip:
|
|
name: '{{item}}'
|
|
state: "{{state}}"
|
|
virtualenv: '{{LIB_DIR_PIP}}/venv'
|
|
virtualenv_python: "{{BINARIES.python.abspath}}"
|
|
virtualenv_site_packages: yes
|
|
loop: "{{install_pip|dictsort|map(attribute='1')|map(attribute='packages')|flatten}}"
|
|
|
|
|
|
###################################################################################
|
|
- set_fact:
|
|
PIP_BINPROVIDERS:
|
|
pip:
|
|
installer_abspath: "{{BINARIES.pip.abspath}}"
|
|
installer_version: "{{BINARIES.pip.version}}"
|
|
PATH: "{{LIB_DIR_PIP_BIN}}"
|
|
when: BINPROVIDERS.pip is not defined
|
|
|
|
- set_fact:
|
|
BINPROVIDERS: "{{ BINPROVIDERS | default({}) | combine(PIP_BINPROVIDERS) }}"
|
|
cacheable: true
|
|
when: BINPROVIDERS.pip is not defined
|
|
|
|
- debug:
|
|
msg: "{{ {'BINARIES': BINARIES, 'BINPROVIDERS': BINPROVIDERS} }}"
|