def backup(args): if args.repos: provider = get_provider_from_config(args.config) today = datetime.datetime.now().date() abs_date_dir = get_abs_date_dir(args.archive_dir, today) mkdir_p(args.staging_dir) mkdir_p(args.archive_dir) mkdir_p(abs_date_dir) repo_objs = get_repo_objs_from_provider(provider, args.repos) if repo_objs: for repo in repo_objs: repo_dir_to_create = os.path.join(args.staging_dir, repo.name) bundle_dir_to_create = os.path.join(abs_date_dir, repo.name) mkdir_p(repo_dir_to_create) mkdir_p(bundle_dir_to_create) bundle_file_to_create = os.path.join( bundle_dir_to_create, "{}.bundle".format(repo.name)) subprocess.check_call( ["git", "clone", "--no-hardlinks", "--mirror", repo.clone_url, repo_dir_to_create]) os.chdir(repo_dir_to_create) subprocess.check_call( ["git", "bundle", "create", bundle_file_to_create, "--all"]) create_tarball([bundle_dir_to_create], repo.name, abs_date_dir) # cleanup rm_rf(bundle_dir_to_create) else: logging.error("Please provide repos to backup.")
def test_create_tarball_with_no_format_filename_is_itself(self): f = create_tarball([self.test_dir], 'foobar2', self.temp_tar, "", gzip=False) ok_(os.path.basename(f) == 'foobar2.tar') ok_(os.path.basename(f).find('_') == -1)
def test_create_tarball(self): f = create_tarball([self.test_dir], 'foobar2', self.temp_tar, gzip=False) ok_(os.path.basename(f) != 'foobar2.tar') ok_(os.stat(f).st_size > 0) tarball = tarfile.open(f) ok_(len(tarball.getmembers()) > 0)
def backup(args): if args.repos: provider = get_provider_from_config(args.config) today = datetime.datetime.now().date() abs_date_dir = get_abs_date_dir(args.archive_dir, today) mkdir_p(args.staging_dir) mkdir_p(args.archive_dir) mkdir_p(abs_date_dir) repo_objs = get_repo_objs_from_provider(provider, args.repos) if repo_objs: for repo in repo_objs: repo_dir_to_create = os.path.join(args.staging_dir, repo.name) bundle_dir_to_create = os.path.join(abs_date_dir, repo.name) mkdir_p(repo_dir_to_create) mkdir_p(bundle_dir_to_create) bundle_file_to_create = os.path.join( bundle_dir_to_create, "{}.bundle".format(repo.name)) subprocess.check_call([ "git", "clone", "--no-hardlinks", "--mirror", repo.clone_url, repo_dir_to_create ]) os.chdir(repo_dir_to_create) subprocess.check_call([ "git", "bundle", "create", bundle_file_to_create, "--all" ]) create_tarball([bundle_dir_to_create], repo.name, abs_date_dir) # cleanup rm_rf(bundle_dir_to_create) else: logging.error("Please provide repos to backup.")
def test_create_tarball_gzip_with_no_format_filename_is_itself(self): f = create_tarball([self.test_dir], 'foobarx', self.temp_tar, "") ok_(os.path.basename(f) == 'foobarx.tar.gz') ok_(os.path.basename(f).find('_') == -1)