aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--launcher.py101
-rw-r--r--source_file.py41
-rw-r--r--source_file.r49
3 files changed, 14 insertions, 177 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")
diff --git a/source_file.py b/source_file.py
deleted file mode 100644
index 672139c..0000000
--- a/source_file.py
+++ /dev/null
@@ -1,41 +0,0 @@
-import socket
-
-HEADER = 64
-PORT = 6011
-SERVER = 'localhost'
-ADDR = (SERVER, PORT)
-FORMAT = 'utf-8'
-DISCONNECT_MESSAGE = b'!DISSCONNECT'
-
-CONN = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-CONN.connect(ADDR)
-
-def display_msg(msg):
- print(
- '\033[93m',
- msg,
- sep='',
- end='\033[0m\n'
- )
-
-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()
- msg = msg.decode(FORMAT)
- return msg
-
-msg = "Initializing Client - Python"
-display_msg(msg)
-
-msg = "Initialized Client - Python"
-send_msg(CONN, msg)
-
-while msg != '!DISCONNECT':
- msg = recv_msg(CONN)
- display_msg(msg)
-
-CONN.close() \ No newline at end of file
diff --git a/source_file.r b/source_file.r
index ce7e85d..3d13503 100644
--- a/source_file.r
+++ b/source_file.r
@@ -1,47 +1,2 @@
-HEADER <- 64
-PORT <- 6011
-SERVER <- "localhost"
-FORMAT <- "utf-8"
-DISCONNECT_MESSAGE <- "!DISSCONNECT"
-
-con <- socketConnection(
- host = SERVER,
- port = PORT,
- server = FALSE
-)
-
-display_msg <- function(msg) {
- cat(
- '\033[94m',
- msg,
- sep = '',
- end = '\033[0m\n'
- )
-}
-
-send_msg <- function(conn, msg) {
- sendme <- paste(msg, strrep(" ", HEADER - nchar(msg)), sep = "")
- writeChar(sendme, conn)
-}
-
-recv_msg <- function(conn) {
- suppressWarnings(msg <- trimws(readChar(conn, HEADER)))
- while (length(msg) == 0) {
- #cat('ALERT\n')
- suppressWarnings(msg <- trimws(readChar(conn, HEADER)))
- }
- return(msg)
-}
-
-msg <- "Initializing Client - R"
-display_msg(msg)
-
-msg <- "Initialized Client - R"
-send_msg(con, msg)
-
-while (msg != '!DISCONNECT') {
- msg <- recv_msg(con)
- display_msg(msg)
-}
-
-close(con) \ No newline at end of file
+msg_1 <- "Initializing Client - R"
+msg_2 <- "Initialized Client - R" \ No newline at end of file