def list_dir()

in src/ab/client/crypto_cli.py [0:0]


def list_dir(file_pattern, encrypt=True):
    """
    列出需要加密的文件
    :file_pattern: 匹配文件的正则表达式
    :return:
    """
    import os
    import re

    def include_name(oname):
        if file_pattern is not None:
            match = re.search(file_pattern, oname)
            if match:
                return True
        return False

    dir = os.getcwd()
    target_files = []
    for root, dirs, files in os.walk(dir, topdown=True):
        for name in files:
            if include_name(os.path.join(root, name)):
                if encrypt:
                    if name[-4:] != SEC_FILE_POSTFIX:
                        target_files.append(os.path.join(root, name))
                else:
                    if name[-4:] == SEC_FILE_POSTFIX:
                        target_files.append(os.path.join(root, name))

    l = len(dir)
    target_files = [x[l + 1:] for x in target_files]
    return dir, target_files