37 lines
1.9 KiB
Python
37 lines
1.9 KiB
Python
#!/usr/local/bin/python3.5
|
|
|
|
import subprocess
|
|
|
|
def compare_lists(docker_find, ovh_find):
|
|
d = []
|
|
for file_docker in docker_find:
|
|
file_name_docker = str(file_docker).split("/", -1)[-1].replace("'", '')
|
|
found = False
|
|
for file_ovh in ovh_find:
|
|
file_name_ovh = str(file_ovh).split("/", -1)[-1].replace("'", '')
|
|
if file_name_ovh == file_name_docker:
|
|
found = True
|
|
break
|
|
if not found:
|
|
d.append(file_docker)
|
|
return d
|
|
|
|
def files_to_move(files, directory):
|
|
for file in files:
|
|
file = file.decode("utf-8")
|
|
str1 = f"docker cp debian-server:{file} ../gmod_zs/fastdl/{directory}/"
|
|
#print(str1)
|
|
subprocess.Popen([str1], shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL).communicate()[0]
|
|
|
|
|
|
if __name__ == "__main__":
|
|
#find maps in docker
|
|
docker_find = subprocess.Popen(["docker exec debian-server find /home/gameservers_zs/gmod_zs_1/garrysmod/maps -type f"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL).communicate()[0].splitlines()
|
|
#find maps on our OVH machine
|
|
ovh_find = subprocess.Popen(["find /home/gameservers/gmod_zs/fastdl/maps/ -type f"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL).communicate()[0].splitlines()
|
|
#if maps are in docker but not OVH we need to list them
|
|
maps_to_move = compare_lists(docker_find, ovh_find)
|
|
#move the files to OVH.
|
|
files_to_move(maps_to_move, "maps")
|
|
|