You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
936 B
Python
36 lines
936 B
Python
import re
|
|
|
|
from vcs_mirrors.lib.utils import run_cmd
|
|
from vcs_mirrors.repo.git import Repo as GitRepo
|
|
|
|
|
|
class Repo(GitRepo):
|
|
TYPE = 'bazaar'
|
|
|
|
@staticmethod
|
|
def get_host(url):
|
|
"""
|
|
Returns the hostname when the url is a git host else None
|
|
|
|
Tested urls:
|
|
- bzr::bzr://bzr.savannah.gnu.org/emacs/trunk
|
|
- bzr::bzr://bzr.savannah.gnu.org/emacs
|
|
- bzr::lp:ubuntu/hello
|
|
- bzr::lp:bzr
|
|
- bzr::sftp://bill@mary-laptop/cool-repo/cool-trunk
|
|
"""
|
|
url = str(url).lower()
|
|
match = re.search(r'bzr::([-\d\w_\.]+):(//)?([\-0-9a-z_\.]+@+)?([\-0-9a-z_\.]+)(/.+)?', url)
|
|
if match:
|
|
if match.group(1) == 'lp':
|
|
return 'lp'
|
|
else:
|
|
return match.group(2)
|
|
|
|
return None
|
|
|
|
def _after_clone(self):
|
|
run_cmd(['git', 'gc', '--aggressive'])
|
|
|
|
super()._after_clone()
|