示例#1
0
文件: base.py 项目: renatofb/weblate
 def __init__(
     self,
     path: str,
     branch: Optional[str] = None,
     component=None,
     local: bool = False,
     skip_init: bool = False,
 ):
     self.path = path
     if branch is None:
         self.branch = self.default_branch
     else:
         self.branch = branch
     self.component = component
     self.last_output = ""
     base_path = self.path.rstrip("/").rstrip("\\")
     self.lock = WeblateLock(
         lock_path=os.path.dirname(base_path),
         scope="repo",
         key=component.pk if component else os.path.basename(base_path),
         slug=os.path.basename(base_path),
         file_template="{slug}.lock",
         timeout=120,
     )
     self.local = local
     if not local:
         # Create ssh wrapper for possible use
         SSH_WRAPPER.create()
         if not skip_init and not self.is_valid():
             self.init()
示例#2
0
 def clone(cls,
           source: str,
           target: str,
           branch: Optional[str] = None,
           component=None):
     """Clone repository and return object for cloned repository."""
     SSH_WRAPPER.create()
     cls._clone(source, target, branch)
     return cls(target, branch, component)
示例#3
0
def borg(cmd, env=None):
    """Wrapper to execute borgbackup."""
    SSH_WRAPPER.create()
    try:
        return subprocess.check_output(
            ["borg", "--rsh", SSH_WRAPPER.filename] + cmd,
            stderr=subprocess.STDOUT,
            env=get_clean_env(env),
        ).decode("utf-8")
    except EnvironmentError as error:
        report_error(error)
        raise BackupError("Could not execute borg program: {}".format(error))
    except subprocess.CalledProcessError as error:
        report_error(error, extra_data={'stdout': error.stdout.decode("utf-8")})
        raise BackupError(error.stdout.decode("utf-8"))
示例#4
0
 def __init__(self, path, branch=None, component=None, local=False):
     self.path = path
     if branch is None:
         self.branch = self.default_branch
     else:
         self.branch = branch
     self.component = component
     self.last_output = ""
     self.lock = FileLock(self.path.rstrip("/").rstrip("\\") + ".lock", timeout=120)
     self.local = local
     if not local:
         # Create ssh wrapper for possible use
         SSH_WRAPPER.create()
         if not self.is_valid():
             self.init()
示例#5
0
def borg(cmd, env=None):
    """Wrapper to execute borgbackup."""
    SSH_WRAPPER.create()
    try:
        return subprocess.check_output(
            ["borg", "--rsh", SSH_WRAPPER.filename] + cmd,
            stderr=subprocess.STDOUT,
            env=get_clean_env(env),
            universal_newlines=True,
        )
    except EnvironmentError as error:
        report_error()
        raise BackupError("Could not execute borg program: {}".format(error))
    except subprocess.CalledProcessError as error:
        report_error(extra_data={"stdout": error.stdout})
        raise BackupError(error.stdout)
示例#6
0
文件: base.py 项目: nijel/weblate
 def __init__(self, path, branch=None, component=None, local=False):
     self.path = path
     if branch is None:
         self.branch = self.default_branch
     else:
         self.branch = branch
     self.component = component
     self.last_output = ''
     self.lock = FileLock(
         self.path.rstrip('/').rstrip('\\') + '.lock',
         timeout=120
     )
     self.local = local
     if not local:
         # Create ssh wrapper for possible use
         SSH_WRAPPER.create()
         if not self.is_valid():
             self.init()
示例#7
0
def borg(cmd, env=None):
    """Wrapper to execute borgbackup."""
    with backup_lock():
        SSH_WRAPPER.create()
        try:
            return subprocess.check_output(
                ["borg", "--rsh", SSH_WRAPPER.filename] + cmd,
                stderr=subprocess.STDOUT,
                env=get_clean_env(env),
                universal_newlines=True,
            )
        except OSError as error:
            report_error()
            raise BackupError(f"Could not execute borg program: {error}")
        except subprocess.CalledProcessError as error:
            add_breadcrumb(category="backup",
                           message="borg output",
                           stdout=error.stdout)
            report_error()
            raise BackupError(error.stdout)
示例#8
0
文件: base.py 项目: zypA13510/weblate
 def clone(cls, source, target, branch=None):
     """Clone repository and return object for cloned repository."""
     SSH_WRAPPER.create()
     cls._clone(source, target, branch)
     return cls(target, branch)
示例#9
0
文件: base.py 项目: nijel/weblate
 def clone(cls, source, target, branch=None):
     """Clone repository and return object for cloned repository."""
     SSH_WRAPPER.create()
     cls._clone(source, target, branch)
     return cls(target, branch)