ansible/test/lib/ansible_test/_data/sanity/code-smell/symlinks.py
Matt Clay 6ec0b4ec86
Sanity test updates for collections support. (#61248)
* Run no-unwanted-files sanity test only on Ansible.

Since collections should be able to use binary modules there is not really any limit on what could exist in a collection `plugins` directory.

* Add support for symlinks in sanity target lists:

- Sanity tests that need to analyze symlinks can do so using the supplied target list.
- Tests that analyze directories will now only look at symlinks if requested.
- Directory symlinks will now be seen as directories instead of files.

* Enable symlinks on filename based sanity tests.

Sanity tests that evalulate filenames instead of content should include symlinks.

* Update symlinks sanity test.

Use the sanity test target list now that it can include symlinks.
2019-08-23 18:08:21 -07:00

22 lines
541 B
Python
Executable file

#!/usr/bin/env python
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
import os
import sys
def main():
for path in sys.argv[1:] or sys.stdin.read().splitlines():
if not os.path.islink(path.rstrip(os.path.sep)):
continue
if not os.path.exists(path):
print('%s: broken symlinks are not allowed' % path)
if path.endswith(os.path.sep):
print('%s: symlinks to directories are not allowed' % path)
if __name__ == '__main__':
main()