/**
 * Lib file module.
 * @namespace lib.file
 * @author Taka Okunishi
 *
 */



/**
 * Define an object property getter with require function.
 * @private
 */
function getRequire (moduleName) {
    return {
        enumerable: true,
        get: function () {
            return require(moduleName);
        }
    };
}

// Export modules with lazy loading.
Object.defineProperties(exports, {
    copyDir: getRequire('./copy_dir'),
    copyFile: getRequire('./copy_file'),
    expandGlob: getRequire('./expand_glob'),
    forceUnlink: getRequire('./force_unlink'),
    ignoreFilter: getRequire('./ignore_filter'),
    loadHbsTmpl: getRequire('./load_hbs_tmpl'),
    matchesGlob: getRequire('./matches_glob'),
    mkdirP: getRequire('./mkdir_p'),
    prepareCleanDir: getRequire('./prepare_clean_dir'),
    readdirRecursive: getRequire('./readdir_recursive'),
    readdirRecursiveSync: getRequire('./readdir_recursive_sync'),
    relativeSymlink: getRequire('./relative_symlink'),
    rmdirRecursive: getRequire('./rmdir_recursive'),
    writeReadonlyFile: getRequire('./write_readonly_file')

});
