import config import lib.powershell as powershell import shutil import os # config deploy_path = config.deploy_path git_url_session_server = config.git_url_session_server git_url_webrtc = config.git_url_webrtc env_path = config.env_path titles_path = config.titles_path if os.path.isdir(deploy_path): print('Package already installed in: ', deploy_path) exit(1) # clone required repositories powershell.run_command_no_dir('mkdir ' + deploy_path) powershell.run_command('git clone ' + git_url_session_server, deploy_path) powershell.run_command('git clone ' + git_url_webrtc, deploy_path) # clone submodules session_server_library = deploy_path + '/pixel-streaming-session-server/lib' powershell.run_command('git submodule init', session_server_library) powershell.run_command('git submodule update', session_server_library) # install node_modules session_server_root_dir = deploy_path + '/pixel-streaming-session-server' powershell.run_command('npm install', session_server_root_dir) powershell.run_command('npm install', deploy_path + '/pixel-streaming-webrtc/WebServers/SignallingWebServer') # copy session server config to destination directory current_directory_name = os.path.dirname(os.path.abspath(__file__)) session_server_config_file = (current_directory_name + env_path).replace('\\', '/') session_server_config_destination = deploy_path + '/pixel-streaming-session-server/.env' shutil.copy(session_server_config_file, session_server_config_destination) # copy session server titles config to destination directory session_server_titles_file = (current_directory_name + titles_path).replace('\\', '/') session_server_titles_destination = deploy_path + '/pixel-streaming-session-server/titles.json' shutil.copy(session_server_titles_file, session_server_titles_destination) # install pm2 for application management powershell.run_command_no_dir('npm i -g pm2') # start session server powershell.run_command('pm2 start app.js', session_server_root_dir) # add to startup print('\nPackage successfully deployed to: ', deploy_path, '\n')