wesnoth/utils/travis/sftp
2020-02-15 18:41:01 -06:00

61 lines
1.5 KiB
Python
Executable file

#!/usr/bin/env python3
# encoding: utf-8
import paramiko
import platform
import os
import datetime
import time
import sys
import hashlib
start = int(time.time())
now = datetime.datetime.now()
dest = "/home/frs/project/bfw-travis-upload/"
with paramiko.Transport(("frs.sourceforge.net", 22)) as transport:
try:
transport.connect(None, "bfw-uploader", os.environ["SFTP_PASSWORD"])
except:
print("SFTP_PASSWORD not present, exiting...")
sys.exit(1)
with paramiko.SFTPClient.from_transport(transport) as sftp:
# make remote directories if they don't already exist
dest = dest+os.environ["BRANCH"]+"/"
try:
sftp.mkdir(dest)
except:
pass
dest = dest+str(now.year)+"-"+str(now.month).zfill(2)+"-"+str(now.day).zfill(2)+"/"
try:
sftp.mkdir(dest)
except:
pass
dest = dest+os.environ["TRAVIS_COMMIT"]+"/"
try:
sftp.mkdir(dest)
except:
pass
dest = dest+os.environ["UPLOAD_ID"]+"/"
try:
sftp.mkdir(dest)
except:
pass
for arg in sys.argv[1:]:
sftp.put(arg, dest+arg)
sha256 = hashlib.sha256()
with open(arg, "rb") as f:
while True:
data = f.read(100000)
if not data:
break
sha256.update(data)
print("sha256 of "+arg+": "+sha256.hexdigest())
print("SFTP duration: "+str(int(time.time())-start)+" seconds")