Index: Mk/Uses/ansible.mk =================================================================== --- /dev/null +++ Mk/Uses/ansible.mk @@ -0,0 +1,74 @@ +# Shared namespace for Ansible-related ports. +# +# Feature: ansible +# Usage: USES=ansible:ARGS +# Valid ARGS: env, module, plugin +# +# env The port does not depend on Ansible but needs some Ansible +# variables set. +# module The port is an Ansible module. (*) +# plugin The port is an Ansible plugin. (*) +# +# (*) See Ansible documentation to learn about the difference +# between a module and a plugin: +# https://docs.ansible.com/ansible/latest/dev_guide/developing_locally.html +# +# Variables for ports: +# +# ANSIBLE_CMD - Path to the ansible program. +# ANSIBLE_DOC_CMD - Path to the ansible-doc program. +# ANSIBLE_RUN_DEPENDS - RUN_DEPENDS with the Ansible port. +# +# ANSIBLE_DATADIR - Path to the root of the directory structure where all +# Ansible's modules and plugins are stored. +# ANSIBLE_PLUGINS_PREFIX +# - Path to the "plugins" directory +# within ${ANSIBLE_DATADIR}. +# ANSIBLE_MODULESDIR - Path to the directory for local Ansible modules. +# ANSIBLE_PLUGINSDIR - Path to the directory for local Ansible plugins. +# ANSIBLE_PLUGIN_TYPE - Ansible plugin type (e.g., "connection", "inventory", +# or "vars"). +# +# Other information: +# - USES=ansible implies USES=python:env automatically is no USES=python has +# been specified yet. +# +# MAINTAINER: ports@FreeBSD.org + +.if !defined(_INCLUDE_USES_ANSIBLE_Mk) +_INCLUDE_USES_ANSIBLE_Mk= yes + +.if empty(ansible_ARGS) +IGNORE= no arguments specified to USES=ansible +.elif ${ansible_ARGS} == "env" +.elif ${ansible_ARGS} == "module" +.elif ${ansible_ARGS} == "plugin" +.else +IGNORE= uses unknown USES=ansible arguments: ${ansible_ARGS} +.endif + +.if !${USES:Mpython*} +python_ARGS= env +_USES_POST+= python:env +.include "${USESDIR}/python.mk" +.endif + +ANSIBLE_CMD?= ${LOCALBASE}/bin/ansible +ANSIBLE_DOC_CMD?= ${LOCALBASE}/bin/ansible-doc +ANSIBLE_RUN_DEPENDS?= ${ANSIBLE_CMD}:sysutils/ansible@${PY_FLAVOR} + +ANSIBLE_DATADIR?= ${PREFIX}/share/${PYTHON_PKGNAMEPREFIX}ansible +ANSIBLE_PLUGINS_PREFIX?= ${ANSIBLE_DATADIR}/plugins +.if ${ansible_ARGS} == "module" +ANSIBLE_MODULESDIR?= ${ANSIBLE_PLUGINS_PREFIX}/modules +.elif ${ansible_ARGS} == "plugin" +. if empty(ANSIBLE_PLUGIN_TYPE) +IGNORE= ANSIBLE_PLUGIN_TYPE must be set +. endif +ANSIBLE_PLUGINSDIR?= ${ANSIBLE_PLUGINS_PREFIX}/${ANSIBLE_PLUGIN_TYPE} +.endif + +.if ${ansible_ARGS} == "module" || ${ansible_ARGS} == "plugin" +RUN_DEPENDS+= ${ANSIBLE_RUN_DEPENDS} +.endif +.endif