95f4282c42
* Add sanity test to ensure all non-py files are installed * Fix mode and regex * Fix role skel inventory package_data * Add docs * Update package_data for inventory files * Address pylint concerns * Another tweak to package_data * Address review feedback * Change index to 1 * add to ansible-only.txt
48 lines
1.6 KiB
Python
Executable file
48 lines
1.6 KiB
Python
Executable file
#!/usr/bin/env python
|
|
from __future__ import (absolute_import, division, print_function)
|
|
__metaclass__ = type
|
|
|
|
import fnmatch
|
|
import os
|
|
import re
|
|
import tempfile
|
|
import subprocess
|
|
|
|
|
|
def main():
|
|
ignore_files = frozenset((
|
|
'*/.git_keep',
|
|
'*/galaxy/data/default/role/*/main.yml.j2',
|
|
'*/galaxy/data/default/role/*/test.yml.j2',
|
|
'*/galaxy/data/default/collection/plugins/README.md.j2',
|
|
))
|
|
|
|
non_py_files = []
|
|
for root, _dummy, files in os.walk('lib/ansible/'):
|
|
for filename in files:
|
|
path = os.path.join(root, filename)
|
|
if os.path.splitext(path)[1] not in ('.py', '.pyc', '.pyo'):
|
|
add = True
|
|
for ignore in ignore_files:
|
|
if fnmatch.fnmatch(path, ignore):
|
|
add = False
|
|
if add:
|
|
non_py_files.append(os.path.relpath(path, 'lib/ansible'))
|
|
|
|
with tempfile.TemporaryDirectory() as tmp_dir:
|
|
stdout, _dummy = subprocess.Popen(
|
|
['python', 'setup.py', 'install', '--root=%s' % tmp_dir],
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.PIPE,
|
|
universal_newlines=True,
|
|
).communicate()
|
|
match = re.search('^creating (%s/.*?/(?:site|dist)-packages/ansible)$' % tmp_dir, stdout, flags=re.M)
|
|
|
|
for filename in non_py_files:
|
|
path = os.path.join(match.group(1), filename)
|
|
if not os.path.exists(path):
|
|
print('%s: File not installed' % os.path.join('lib', 'ansible', filename))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|