aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2020-01-22 22:39:40 -0800
committerMax Resnick <max@ofmax.li>2020-01-22 22:39:40 -0800
commitb9bba34110e43663b13181bc4bef14133fc2cdcf (patch)
tree92fc878988d3093ac716f2c30f97b77d2b18cf6b
parentf54e38b77366f031f3822a9d1acd911a259112a4 (diff)
downloadgit-snapshot-b9bba34110e43663b13181bc4bef14133fc2cdcf.tar.gz
add entrypoints, relocate entrypoint in script
-rw-r--r--gitsnap/snap.py21
-rw-r--r--setup.py8
2 files changed, 20 insertions, 9 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()
diff --git a/setup.py b/setup.py
index a284405..b92079c 100644
--- a/setup.py
+++ b/setup.py
@@ -8,13 +8,13 @@ with open('VERSION', 'r') as version_file:
setup(name='gitsnap',
version=version,
- description='distributed observability of systemd',
+ description='stupid bundler for bare repos',
long_description=" ".join("""
simple tools for snapshotting git repos
""".split()),
author='Max Resnick',
author_email='max@ofmax.li',
- url='http://git.ofmax.li/gitsnap.git/',
+ url='https://git.ofmax.li/git-snapshot/',
license="MIT",
py_modules=['gitsnap'],
packages=[],
@@ -23,6 +23,10 @@ setup(name='gitsnap',
'boto3'
],
keywords='',
+ entry_points='''
+ [console_scripts]
+ gitsnap=gitsnap.snap:run
+ ''',
classifiers=[
'Development Status :: 3 - Alpha',
'Natural Language :: English',