예제 #1
0
def scan_dir(path):
    ret = Directory(state=DirectoryState.SYNC)
    for entry in os.listdir(os.sep.join(path)):
        if entry in ['.', '..']:
            continue
        next_path = path + [entry]
        next_path_str = os.sep.join(next_path)
        if os.path.isfile(next_path_str):
            ret.add(name=entry, entry=File(state=FileState.SYNC_CLEAR))
            continue
        if os.path.isdir(next_path_str):
            dir = scan_dir(next_path)
            ret.add(entry, dir)
            continue
        raise Error(next_path_str+' has unknown type')
    return ret
예제 #2
0
def build_inmem_filesys():
    fs = FileSystem(path=['', 'tmp', 'test-the-filesystem'],
                    rootdirectory=Directory())
    fs.rootdirectory().add(name='Confix2.in',
                           entry=File(lines=['PACKAGE_NAME("basic")',
                                             'PACKAGE_VERSION("6.6.6")']))

    dir1 = Directory()
    dir1.add(name='Confix2.in', entry=File(lines=['IGNORE_ENTRIES(["file1_1.h", "file1_1.c"])']))
    dir1.add(name='file1_1.h', entry=File(lines=[]))
    dir1.add(name='file1_1.c', entry=File(lines=[]))
    dir1.add(name='file1_2.h', entry=File(lines=[]))
    dir1.add(name='file1_2.c', entry=File(lines=[]))
    
    dir2 = Directory()
    dir2.add(name='file2_1.h', entry=File(lines=[]))
    dir2.add(name='file2_1.c', entry=File(lines=[]))
    
    dir1.add(name='dir2', entry=dir2)
    fs.rootdirectory().add(name='dir1', entry=dir1)
    
    return fs
예제 #3
0
def main():
    try:
        print('Making root entries...')
        rootdir = Directory('root')
        bindir = Directory('bin')
        tmpdir = Directory('tmp')
        usrdir = Directory('usr')
        rootdir.add(bindir)
        rootdir.add(tmpdir)
        rootdir.add(usrdir)
        bindir.add(MyFile('vi', 10000))
        bindir.add(MyFile('latex', 20000))
        rootdir.accept(ListVisitor())

        print('')
        print('Making user entries...')
        yuki = Directory('yuki')
        hanako = Directory('hanako')
        tomura = Directory('tomura')
        usrdir.add(yuki)
        usrdir.add(hanako)
        usrdir.add(tomura)
        yuki.add(MyFile('diary.html', 100))
        yuki.add(MyFile('Composite.py', 200))
        hanako.add(MyFile('memo.txt', 300))
        tomura.add(MyFile('game.doc', 400))
        tomura.add(MyFile('junk.mail', 500))
        rootdir.accept(ListVisitor())
    except FileTreatmentException as e:
        logging.exception('FileTreatmentException: {0}'.format(e))