1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-20 13:50:12 +01:00

Merge branch 'rsync' into 'master'

build: rsync instead of sftp dirs to the buildserver

Closes #227

See merge request fdroid/fdroidserver!379
This commit is contained in:
Hans-Christoph Steiner 2017-11-26 21:50:24 +00:00
commit 9fda492b2f

View File

@ -98,22 +98,19 @@ def build_server(app, build, vcs, build_dir, output_dir, log_dir, force):
# Helper to copy the contents of a directory to the server...
def send_dir(path):
startroot = os.path.dirname(path)
main = os.path.basename(path)
ftp.mkdir(main)
for root, dirs, files in os.walk(path):
rr = os.path.relpath(root, startroot)
ftp.chdir(rr)
for d in dirs:
ftp.mkdir(d)
for f in files:
lfile = os.path.join(startroot, rr, f)
if not os.path.islink(lfile):
ftp.put(lfile, f)
ftp.chmod(f, os.stat(lfile).st_mode)
for i in range(len(rr.split('/'))):
ftp.chdir('..')
ftp.chdir('..')
logging.debug("rsyncing " + path + " to " + ftp.getcwd())
subprocess.check_call(['rsync', '-rple',
'ssh -o StrictHostKeyChecking=no' +
' -o UserKnownHostsFile=/dev/null' +
' -o LogLevel=FATAL' +
' -o IdentitiesOnly=yes' +
' -o PasswordAuthentication=no' +
' -p ' + str(sshinfo['port']) +
' -i ' + sshinfo['idfile'],
path,
sshinfo['user'] +
"@" + sshinfo['hostname'] +
":" + ftp.getcwd()])
logging.info("Preparing server for build...")
serverpath = os.path.abspath(os.path.dirname(__file__))