lib/util/glob-util.js
function listFilesToProcess(globPatterns, options) {
    var ignoredPaths,
        ignoredPathsList,
        files = [],
        added = {},
        globOptions,
        rulesKey = "_rules";

    /**
     * Executes the linter on a file defined by the `filename`. Skips
     * unsupported file extensions and any files that are already linted.
     * @param {string} filename The file to be processed
     * @returns {void}
     */
    function addFile(filename) {
        if (ignoredPaths.contains(filename)) {
            return;
        }
        filename = fs.realpathSync(filename);
        if (added[filename]) {
            return;
        }
        files.push(filename);
        added[filename] = true;
    }

    options = options || { ignore: true, dotfiles: true };
    ignoredPaths = new IgnoredPaths(options);
    ignoredPathsList = ignoredPaths.ig.custom[rulesKey].map(function(rule) {
        return rule.pattern;
    });
    globOptions = {
        nodir: true,
        ignore: ignoredPathsList
    };

    debug("Creating list of files to process.");
    globPatterns.forEach(function(pattern) {
        if (shell.test("-f", pattern)) {
            addFile(pattern);
        } else {
            glob.sync(pattern, globOptions).forEach(addFile);
        }
    });

    return files;
}
function listFilesToProcess(globPatterns, options) {
    var ignoredPaths,
        ignoredPathsList,
        files = [],
        added = {},
        globOptions,
        rulesKey = "_rules";

    /**
     * Executes the linter on a file defined by the `filename`. Skips
     * unsupported file extensions and any files that are already linted.
     * @param {string} filename The file to be processed
     * @returns {void}
     */
    function addFile(filename) {
        if (ignoredPaths.contains(filename)) {
            return;
        }
        filename = fs.realpathSync(filename);
        if (added[filename]) {
            return;
        }
        files.push(filename);
        added[filename] = true;
    }

    options = options || { ignore: true, dotfiles: true };
    ignoredPaths = new IgnoredPaths(options);
    ignoredPathsList = ignoredPaths.ig.custom[rulesKey].map(function(rule) {
        return rule.pattern;
    });
    globOptions = {
        nodir: true,
        ignore: ignoredPathsList
    };

    debug("Creating list of files to process.");
    globPatterns.forEach(function(pattern) {
        if (shell.test("-f", pattern)) {
            addFile(pattern);
        } else {
            glob.sync(pattern, globOptions).forEach(addFile);
        }
    });

    return files;
}
function listFilesToProcess ( globPatterns , options ) { var ignoredPaths , ignoredPathsList , files = [ ] , added = { } , globOptions , rulesKey = "_rules" ; /**
     * Executes the linter on a file defined by the `filename`. Skips
     * unsupported file extensions and any files that are already linted.
     * @param {string} filename The file to be processed
     * @returns {void}
     */ function addFile ( filename ) { if ( ignoredPaths . contains ( filename ) ) { return ; } filename = fs . realpathSync ( filename ) ; if ( added [ filename ] ) { return ; } files . push ( filename ) ; added [ filename ] = true ; } options = options || { ignore : true , dotfiles : true } ; ignoredPaths = new IgnoredPaths ( options ) ; ignoredPathsList = ignoredPaths . ig . custom [ rulesKey ] . map ( function ( rule ) { return rule . pattern ; } ) ; globOptions = { nodir : true , ignore : ignoredPathsList } ; debug ( "Creating list of files to process." ) ; globPatterns . forEach ( function ( pattern ) { if ( shell . test ( "-f" , pattern ) ) { addFile ( pattern ) ; } else { glob . sync ( pattern , globOptions ) . forEach ( addFile ) ; } } ) ; return files ; }
Build a list of absolute filesnames on which bemlint will act.
Ignored files are excluded from the results, as are duplicates.

@param   {string[]} globPatterns            Glob patterns.
@param   {Object}   [options]               An options object.
@param   {boolean}  [options.ignore]        False disables use of .bemlintignore.
@param   {string}   [options.ignorePath]    The ignore file to use instead of .bemlintignore.
@param   {string}   [options.ignorePattern] A pattern of files to ignore.
@returns {string[]} Resolved absolute filenames.
Build a list of absolute filesnames on which bemlint will act . Ignored files are excluded from the results as are duplicates .