コード例 #1
0
ファイル: upload_artifacts.py プロジェクト: PuerkitoBio/locic
def get_artifact_archives(ftp):
	files = ftp.nlst()
	
	artifact_archives = []
	
	for filename in files:
		artifact_file = artifact.parse_filename(filename)
		if artifact_file is None:
			continue
		artifact_archives.append(artifact_file)
	
	return artifact_archives
コード例 #2
0
ファイル: upload_artifacts.py プロジェクト: PuerkitoBio/locic
def delete_old_artifacts(ftp):
	artifact_archives = get_artifact_archives(ftp)
	
	delete_branch_builds = get_branch_builds_to_delete(artifact_archives)
	
	for artifact_file in artifact_archives:
		if artifact_file.build_number in delete_branch_builds[artifact_file.branch]:
			sys.stdout.write("Deleting old artifact '%s'..." % artifact_file.get_filename())
			ftp.delete(artifact_file.get_filename())
			sys.stdout.write(" done!\n")

if len(sys.argv) != 5:
	print "Usage: %s [host] [username] [password] [file]" % sys.argv[0]
	sys.exit(1)

host = sys.argv[1]
username = sys.argv[2]
password = sys.argv[3]
filename = sys.argv[4]

ftp = ftplib.FTP(host, username, password)

if artifact.parse_filename(os.path.basename(filename)) is None:
	print "Invalid artifacts file '%s'." % filename
	sys.exit(1)

upload_file(ftp, filename)
delete_old_artifacts(ftp)

ftp.quit()