aboutsummaryrefslogtreecommitdiff
path: root/launcher.py
diff options
context:
space:
mode:
authorTinWoodman92 <chrhodgden@gmail.com>2023-06-11 20:49:16 -0500
committerTinWoodman92 <chrhodgden@gmail.com>2023-06-11 20:49:16 -0500
commit48fbc07e1106f217e56dba99d273946d39de5974 (patch)
tree617c1b82b45d0031c67cc3a7ec29136fc0494320 /launcher.py
parent2a1a16a22e44ae35b8fab3ac462b49d3be87d01f (diff)
Updated launcher and script to use the dialoguer package.
Diffstat (limited to 'launcher.py')
-rw-r--r--launcher.py101
1 files changed, 12 insertions, 89 deletions
diff --git a/launcher.py b/launcher.py
index 32ec12b..50aaedc 100644
--- a/launcher.py
+++ b/launcher.py
@@ -1,96 +1,19 @@
-import os
-import subprocess
-import threading
-import socket
-import time
+import dialoguer
-HEADER = 64
-PORT = 6011
-SERVER = 'localhost'
-ADDR = (SERVER, PORT)
-FORMAT = 'utf-8'
-DISCONNECT_MESSAGE = b'!DISSCONNECT'
+src_fil_r = dialoguer.Dialogue('source_file.r')
+print('active:', src_fil_r.active)
+src_fil_r.open()
+print('active:', src_fil_r.active)
-server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-server.bind(ADDR)
+msg_1 = src_fil_r.import_variable('msg_1')
+print(msg_1)
-def establish_connection(mutable = {}):
- server.listen()
- conn, addr = server.accept()
- mutable['conn'] = conn
- mutable['addr'] = addr
- return conn, addr
+msg_2 = src_fil_r.import_variable('msg_2')
+print(msg_2)
-def send_msg(conn, msg):
- data = bytes(msg, FORMAT)
- data += b' ' * (HEADER - len(data))
- conn.send(data)
-
-def recv_msg(conn):
- msg = conn.recv(HEADER).strip()
- return msg
-
-def execute_source_file(file_name):
- ext = file_name.split('.')
- if ext[1] == 'py': cmd = 'Python'
- elif ext[1] == 'r': cmd = 'Rscript'
-
- subprocess.run(
- f'{cmd} {file_name}',
- cwd = os.getcwd(),
- start_new_session = True
- )
- print(f'{file_name} executed')
-
-def launch_and_connect(file_name, CONN):
- connect_ = threading.Thread(target=establish_connection, args=[CONN])
- launch_ = threading.Thread(target=execute_source_file, args=[file_name])
-
- connect_.start()
- launch_.start()
- connect_.join()
-
- conn = CONN['conn']
- addr = CONN['addr']
- CONN['launch_'] = launch_
- return conn, addr
-
-def disconnect_and_close(CONN):
- conn = CONN['conn']
- launch_ = CONN['launch_']
- send_msg(conn, '!DISCONNECT')
- print(f'closing {CONN["addr"]}')
- launch_.join()
- print(f'closed {CONN["addr"]}')
- conn.close()
-
-CONN_R = {}
-CONN_PY = {}
-src_fil_r = threading.Thread(target=launch_and_connect, args=['source_file.r', CONN_R])
-src_fil_py = threading.Thread(target=launch_and_connect, args=['source_file.py', CONN_PY])
-disc_r = threading.Thread(target=disconnect_and_close, args=[CONN_R])
-disc_py = threading.Thread(target=disconnect_and_close, args=[CONN_PY])
-
-src_fil_r.run()
-src_fil_py.run()
-
-conn_r = CONN_R['conn']
-conn_py = CONN_PY['conn']
-
-msg = recv_msg(conn_r)
-print(msg)
-msg = recv_msg(conn_py)
-print(msg)
-
-for i in range(255):
- msg = f'message {i}'
- send_msg(conn_r, msg)
- send_msg(conn_py, msg)
-
-disc_r.start()
-disc_py.start()
-disc_r.join()
-disc_py.join()
+print('active:', src_fil_r.active)
+src_fil_r.close()
+print('active:', src_fil_r.active)
print("end launcher")