mirror of
https://github.com/borgbackup/borg.git
synced 2025-01-03 05:35:58 +00:00
Added dedupestore "console script"
This commit is contained in:
parent
767335e879
commit
4bbd093a56
3 changed files with 60 additions and 4 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,4 +1,5 @@
|
|||
build
|
||||
*.egg-info
|
||||
*.pyc
|
||||
*.pyo
|
||||
|
||||
|
|
51
dedupestore/helpers.py
Normal file
51
dedupestore/helpers.py
Normal file
|
@ -0,0 +1,51 @@
|
|||
import argparse
|
||||
import re
|
||||
|
||||
|
||||
class Location(object):
|
||||
|
||||
loc_re = re.compile(r'^((?:(?P<user>[^@]+)@)?(?P<host>[^:]+):)?'
|
||||
r'(?P<path>[^:]*)(?:::(?P<archive>[^:]+))?$')
|
||||
|
||||
def __init__(self, text):
|
||||
loc = self.loc_re.match(text)
|
||||
loc = loc and loc.groupdict()
|
||||
if not loc:
|
||||
raise ValueError
|
||||
self.user = loc['user']
|
||||
self.host = loc['host']
|
||||
self.path = loc['path']
|
||||
if not self.host and not self.path:
|
||||
raise ValueError
|
||||
self.archive = loc['archive']
|
||||
|
||||
def __str__(self):
|
||||
text = ''
|
||||
if self.user:
|
||||
text += '%s@' % self.user
|
||||
if self.host:
|
||||
text += '%s::' % self.host
|
||||
if self.path:
|
||||
text += self.path
|
||||
if self.archive:
|
||||
text += ':%s' % self.archive
|
||||
return text
|
||||
|
||||
def __repr__(self):
|
||||
return "Location('%s')" % self
|
||||
|
||||
|
||||
def location_validator(archive=None):
|
||||
def validator(text):
|
||||
try:
|
||||
loc = Location(text)
|
||||
except ValueError:
|
||||
raise argparse.ArgumentTypeError('Invalid location format: "%s"' % text)
|
||||
if archive is True and not loc.archive:
|
||||
raise argparse.ArgumentTypeError('"%s": No archive specified' % text)
|
||||
elif archive is False and loc.archive:
|
||||
raise argparse.ArgumentTypeError('"%s" No archive can be specified' % text)
|
||||
return loc
|
||||
return validator
|
||||
|
||||
|
12
setup.py
12
setup.py
|
@ -1,13 +1,17 @@
|
|||
# -*- encoding: utf-8 *-*
|
||||
#!/usr/bin/env python
|
||||
|
||||
from distutils.core import setup, Extension
|
||||
from setuptools import setup, Extension
|
||||
|
||||
setup(name='Dedupestore',
|
||||
version='1.0',
|
||||
author='Jonas Borgström',
|
||||
version='0.1',
|
||||
author=u'Jonas Borgström',
|
||||
author_email='jonas@borgstrom.se',
|
||||
packages=['dedupestore'],
|
||||
ext_modules=[Extension('_speedups', ['dedupestore/_speedups.c'])],
|
||||
)
|
||||
entry_points = {
|
||||
'console_scripts': [
|
||||
'dedupestore = dedupestore.archiver:main',
|
||||
]
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in a new issue