Metadata-Version: 2.0
Name: pathscan
Version: 0.2.2
Summary: Search a filesystem using zero or more file and directory filters.
Home-page: https://github.com/dsoprea/PathScan
Author: Dustin Oprea
Author-email: myselfasunder@gmail.com
License: GPL 2
Keywords: filesystem file search scanner
Platform: UNKNOWN

*FSS* will recursively scan the given directory for matching files and yield results as a generator. You may provide a list of include/exclude rules for files and/or directories. 

The searching is done asynchronously from another process. This way, the searching and whatever you're doing with the results may potentially run in parallel.


-----
Usage
-----

As Library
==========

Example:

.. code-block:: python

    import fss.constants
    import fss.config.log
    import fss.orchestrator

    root_path = '/etc'

    filter_rules = [
        (fss.constants.FT_DIR, fss.constants.FILTER_INCLUDE, 'init'),
        (fss.constants.FT_FILE, fss.constants.FILTER_INCLUDE, 'net*'),
        (fss.constants.FT_FILE, fss.constants.FILTER_EXCLUDE, 'networking.conf'),
    ]

    o = fss.orchestrator.Orchestrator(root_path, filter_rules)
    for (entry_type, entry_filepath) in o.recurse():
        if entry_type == fss.constants.FT_DIR:
            print("Directory: [%s]" % (entry_filepath,))
        else: # entry_type == fss.constants.FT_FILE:
            print("File: [%s]" % (entry_filepath,))

Output::

    Directory: [/etc/init]
    File: [/etc/networks]
    File: [/etc/netconfig]
    File: [/etc/init/network-interface-container.conf]
    File: [/etc/init/networking.conf]
    File: [/etc/init/network-interface-security.conf]
    File: [/etc/init/network-interface.conf]

Notice that even though we only include directories named "init" we'll still see matching files from the root-path.


As Script
=========

You can also use *FSS* from the command-line. You'll get a printout of the results that you can consume and parse.

Example::

    $ pathscan -i "i*.h" -id php /usr/include 
    F /usr/include/iconv.h
    F /usr/include/ifaddrs.h
    F /usr/include/inttypes.h
    F /usr/include/iso646.h
    D /usr/include/php


------------
Requirements
------------

- Python 3.4


------------
Installation
------------

PyPI::

    $ sudo pip3 install pathscan


