Пример #1
0
def create_archive():
    ravello_dir = util.get_ravello_dir()
    try:
        st = os.stat(ravello_dir)
    except OSError:
        st = None
    if st and not stat.S_ISDIR(st.st_mode):
        error.raise_error("Path `{0}` exists but is not a directory.",
                          ravello_dir)
    elif st is None:
        os.mkdir(ravello_dir)
    distfile = os.path.join(ravello_dir, 'dist.tar.gz')
    try:
        st = os.stat(distfile)
    except OSError:
        st = None
    if st and st.st_mtime >= env.start_time:
        return distfile
    archive = tarfile.TarFile.open(distfile, 'w:gz')
    repotype = env.manifest['repository']['type']
    files = versioncontrol.walk_repository('.', repotype)
    for fname in files:
        if fname.startswith(ravello_dir):
            continue
        archive.add(fname, recursive=False)
    archive.close()
    return distfile
Пример #2
0
 def test_walk_git_repository(self):
     self.create_git_repo()
     gen = versioncontrol.walk_repository('.', repotype='git')
     elems = list(gen)
     assert len(elems) == 8
     join = os.path.join
     assert '.gitignore' in elems
     assert 'dir1' in elems
     assert join('dir1', 'sub1') in elems
     assert join('dir1', 'sub1', 'bar') in elems
     assert 'dir2' in elems
     assert join('dir2', '.gitignore') in elems
     assert join('dir2', 'sub2') in elems
     assert join('dir2', 'sub2', 'qux') in elems
Пример #3
0
 def test_walk_repository(self):
     self.create_repo()
     gen = versioncontrol.walk_repository('.', repotype=None)
     elems = list(gen)
     assert len(elems) == 12
     join = os.path.join
     assert 'dir1' in elems
     assert join('dir1', 'sub1') in elems
     assert join('dir1', 'sub1', 'foo') in elems
     assert join('dir1', 'sub1', 'bar') in elems
     assert join('dir1', 'sub2') in elems
     assert join('dir1', 'sub2', 'baz') in elems
     assert 'dir2' in elems
     assert join('dir2', 'sub2') in elems
     assert join('dir2', 'sub2', 'foo') in elems
     assert join('dir2', 'sub2', 'qux') in elems
     assert join('dir2', 'sub3') in elems
     assert join('dir2', 'sub3', 'quux') in elems