コード例 #1
0
ファイル: py-gitback.py プロジェクト: ryankanno/py-gitback
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.")
コード例 #2
0
 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)
コード例 #3
0
    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)
コード例 #4
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.")
コード例 #5
0
    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)
コード例 #6
0
 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)
コード例 #7
0
 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)
コード例 #8
0
 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)