Coverage for heliumcli/actions/startservers.py: 96.30%
27 statements
« prev ^ index » next coverage.py v7.3.2, created at 2023-11-22 17:35 +0000
« prev ^ index » next coverage.py v7.3.2, created at 2023-11-22 17:35 +0000
1import os
2import subprocess
4from .. import utils
6__author__ = "Alex Laird"
7__copyright__ = "Copyright 2018, Helium Edu"
8__version__ = "1.5.0"
10child_processes = []
13class StartServersAction:
14 def __init__(self):
15 self.name = "start-servers"
16 self.help = "Launch known project servers to run locally"
18 def setup(self, subparsers):
19 parser = subparsers.add_parser(self.name, help=self.help)
20 parser.set_defaults(action=self)
22 def run(self, args):
23 config = utils.get_config()
24 projects_dir = utils.get_projects_dir()
26 # Identify dev servers (if present) and launch them
27 processes = []
28 for project in utils.get_projects(config):
29 if config["projectsRelativeDir"] != ".":
30 project_path = os.path.join(projects_dir, project)
31 else:
32 project_path = os.path.join(projects_dir)
34 runserver_bin = os.path.join(project_path, config["serverBinFilename"])
36 if os.path.exists(runserver_bin):
37 processes.append(subprocess.Popen(runserver_bin))
39 if len(processes) > 0:
40 processes[-1].wait()