51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
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)
|
|
|
|
print('\nPackage successfully deployed to: ', deploy_path, '\n') |