Mercurial > hg > silvermirror
view silvermirror/unison.py @ 44:e8752ce07aa0
python3
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sat, 24 Apr 2021 15:09:33 -0700 |
parents | 743c920bc041 |
children | 952a1c2e9cc1 |
line wrap: on
line source
""" unison backend for silvermirror """ import pexpect import subprocess from interface import Reflector class unison(Reflector): def sync(self, host, resource, ignore=(), password=None, test=False): command = ['unison', '-auto', '-batch', resource, 'ssh://%s/%s' % (host, resource)] for i in ignore: command.extend(('-ignore', "'Name %s'" % i)) command = ' '.join(command) print(command) if not test: if password: child = pexpect.spawn(command, timeout=36000, maxread=1) child.expect('password: ') child.sendline(password) print(child.read()) else: # XXX should not use shell=True subprocess.call(command, shell=True)