diff options
author | TinWoodman92 <chrhodgden@gmail.com> | 2023-07-07 19:25:39 -0500 |
---|---|---|
committer | TinWoodman92 <chrhodgden@gmail.com> | 2023-07-07 19:25:39 -0500 |
commit | f6bbfe5bcdbe2a29a8180e3d3fdaa55cddbc8f99 (patch) | |
tree | d6a3aa85c53397c7a801f6b37533d1382912406a /dialoguer/context_script.r | |
parent | 5753265e7ba136fdba10ca8ea384837a18179de6 (diff) |
Added save environment test.
Diffstat (limited to 'dialoguer/context_script.r')
-rw-r--r-- | dialoguer/context_script.r | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/dialoguer/context_script.r b/dialoguer/context_script.r deleted file mode 100644 index 32a0149..0000000 --- a/dialoguer/context_script.r +++ /dev/null @@ -1,150 +0,0 @@ -HEADER <- 2048 -PORT <- 6011 -SERVER <- "localhost" -FORMAT <- "utf-8" -DISCONNECT_MESSAGE <- "!DISSCONNECT" -UUID <- commandArgs(trailingOnly = TRUE)[1] -TARGET_FILE <- commandArgs(trailingOnly = TRUE)[2] - -data_type_vect <- c( - character = "character", - str = "character", - integer = "integer", - int = "integer", - double = "double", - float = "double", - logical = "logical", - bool = "logical" -) - -display_msg <- function(...) { - cat("\033[94m") - cat( - ..., - end = "\033[0m\n" - ) -} - -# may not need to pass connection if it will only be 1 per dialogue -send <- function(conn, data, send_data_type = FALSE) { - if (send_data_type) { - data_type_name <- typeof(data) - writeBin(data_type_name, conn) - recv_chk <- recv(conn, set_data_type = 'logical') - } - writeBin(data, conn) -} - -# may not need to pass connection if it will only be 1 per dialogue -# I still want to consolidate the recv_data_type and set_data_type args -recv <- function(conn, recv_data_type = FALSE, set_data_type = "character") { - if (recv_data_type) { - suppressWarnings(data_type <- readBin(conn, "raw", HEADER)) - while (length(data_type) == 0) { - suppressWarnings(data_type <- readBin(conn, "raw", HEADER)) - } - data_type <- readBin(data_type, "character") - data_type <- data_type_vect[data_type] - send(con, TRUE) - } else { - data_type <- set_data_type - } - - suppressWarnings(data <- readBin(conn, "raw", HEADER)) - while (length(data) == 0) { - suppressWarnings(data <- readBin(conn, "raw", HEADER)) - } - - data <- readBin(data, data_type) - - return(data) -} - -find_connection <- function() { - connected <- FALSE - while (!connected) { - con <- socketConnection( - host = SERVER, - port = PORT, - server = FALSE, - open = "a+b" - ) - - send(con, UUID) - uuid_chk <- recv(con) - connected <- (UUID == uuid_chk) - if (!connected) { - close(con) - } - } - return(con) -} - -import_variable <- function() { - var_name <- recv(con, FALSE, "character") - var_val <- get(var_name) - send(con, var_val, TRUE) -} - -assign_variable <- function() { - var_name <- recv(con, FALSE, "character") - send(con, TRUE) - var_val <- recv(con, TRUE) - send(con, TRUE) - assign(var_name, var_val, envir = globalenv()) -} - -evaluate_expression <- function() { - arg_count <- recv(con, FALSE, "integer") - send(con, TRUE) - kwarg_count <- recv(con, FALSE, "integer") - send(con, TRUE) - method_name <- recv(con, FALSE, "character") - send(con, TRUE) - args <- list() - if (arg_count > 0) { - for (i in 1:arg_count) { - args <- c(args, recv(con, TRUE)) - send(con, TRUE) - } - } - kwargs <- list() - if (kwarg_count > 0) { - keys <- c() - vals <- list() - for (i in 1:kwarg_count) { - keys <- c(keys, recv(con)) - send(con, TRUE) - vals <- c(vals, recv(con, TRUE)) - send(con, TRUE) - } - kwargs <- setNames(vals, keys) - } - args <- c(args, kwargs) - result <- do.call(method_name, args) - send(con, result, TRUE) -} - -con <- find_connection() - -#load target file -source(TARGET_FILE) - -send(con, TRUE) - -cmd_int <- -1 -while (cmd_int != 0) { - cmd_int <- recv(con, FALSE, "integer") - if (cmd_int == 1){ - send(con, TRUE) - import_variable() - } else if (cmd_int == 2) { - send(con, TRUE) - evaluate_expression() - } else if (cmd_int == 3) { - send(con, TRUE) - assign_variable() - } -} - -close(con)
\ No newline at end of file |