diff options
Diffstat (limited to 'tasks.py')
-rw-r--r-- | tasks.py | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -1,3 +1,4 @@ +from __future__ import print_function import invoke from invoke import task import os @@ -6,11 +7,18 @@ from yaksh.settings import SERVER_POOL_PORT SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) TARGET_CONTAINER_NAME = 'yaksh_code_server' SRC_IMAGE_NAME = 'fossee/yaksh_codeserver' +CHECK_FILE = 'server_running.txt' +CHECK_FILE_PATH = os.path.join(SCRIPT_DIR, 'yaksh_data', CHECK_FILE) + def create_dir(path): if not os.path.exists(path): os.makedirs(path) +def remove_check_file(path): + if os.path.isfile(path): + os.remove(path) + @task def setupdb(ctx): print("** Setting up & migrating database **") @@ -36,6 +44,7 @@ def getimage(ctx, image=SRC_IMAGE_NAME): print("The docker image {0} does not exist locally".format(image)) print("\n** Pulling latest image <{0}> from docker hub **".format(image)) ctx.run("sudo docker pull {0}".format(image)) + print("\n** Done! Successfully pulled latest image <{0}> **".format(image)) @task def start(ctx, ports=SERVER_POOL_PORT, image=SRC_IMAGE_NAME, unsafe=False, @@ -58,6 +67,7 @@ def start(ctx, ports=SERVER_POOL_PORT, image=SRC_IMAGE_NAME, unsafe=False, ) } + remove_check_file(CHECK_FILE_PATH) getimage(ctx, image=SRC_IMAGE_NAME) print("** Preparing code server **") @@ -84,12 +94,19 @@ def start(ctx, ports=SERVER_POOL_PORT, image=SRC_IMAGE_NAME, unsafe=False, {image} {command}".format(**cmd_params) ) + while not os.path.isfile(CHECK_FILE_PATH): + print("** Checking code server status. Press Ctrl-C to exit **\r", end="") + print("** Code server is up and running successfully **") + + @task def stop(ctx, container=TARGET_CONTAINER_NAME, hide=True): result = ctx.run("sudo docker ps -q --filter='name={0}'".format(container)) + remove_check_file(CHECK_FILE_PATH) if result.stdout: print ("** Discarding the docker container <{0}>".format(container)) ctx.run("sudo docker stop {0}".format(container)) ctx.run("sudo docker rm {0}".format(container)) + print ("** Done! Discarded the docker container <{0}>".format(container)) else: print("** Docker container <{0}> not found **".format(container)) |