diff options
Diffstat (limited to 'gitsnap/snap.py')
| -rw-r--r-- | gitsnap/snap.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/gitsnap/snap.py b/gitsnap/snap.py index 44e32fb..6fd2820 100644 --- a/gitsnap/snap.py +++ b/gitsnap/snap.py @@ -18,6 +18,9 @@ subparsers = parser.add_subparsers(dest='cmd', help='git snapshot commands') parser_backup= subparsers.add_parser('backup', help='backup repositories') parser_backup.add_argument('repositories', help='directory with repos') +parser_backup.add_argument('bucket', type=str, help='s3 bucket') +parser_backup.add_argument('-p', '--prefix', type=str, default='gitsnap', + help='prefixes all bundles in object store') args = parser.parse_args() @@ -110,21 +113,25 @@ def run_backup(ctx): obj = cloud_object(ctx, bundle_path) tag_checkpoint(ctx) -def run_backups(base): +def run_backups(base, bucket, prefix): repo_base_path = Path(base) with Wal() as wal: for repo_path in repo_base_path.glob('*.git'): ctx = Context( repo=git.bake(f'--git-dir={repo_path}/'), repo_name=repo_path.name.split('.')[0], - bucket='privategit', - prefix='2', + bucket=bucket, + prefix=prefix, bundle=None, wal=wal ) run_backup(ctx) -if args.cmd == 'backup': - run_backups(args.repositories) -elif args.cmd == 'restore': - run_restore(args.bundle) +def run(): + if args.cmd == 'backup': + run_backups(args.repositories, args.bucket, args.prefix) + elif args.cmd == 'restore': + run_restore(args.bundle) + +if __name__ == '__main__': + run() |