Skip to content

Commit f92352a

Browse files
committed
Update R/notebook.R
1 parent 2df7296 commit f92352a

1 file changed

Lines changed: 22 additions & 16 deletions

File tree

R/notebook.R

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,28 @@ local({
99

1010
ls.str(env)
1111
while (TRUE) {
12-
cat("Waiting\n")
13-
con <- socketConnection(host = "127.0.0.1", port = env$port,
12+
con <- try(socketConnection(host = "127.0.0.1", port = env$port,
1413
blocking = TRUE, server = TRUE,
15-
open = "r+")
16-
line <- readLines(con, n = 1)
17-
request <- jsonlite::fromJSON(line)
18-
cat(sprintf("[%s] %s\n",
19-
request$time, request$expr))
20-
expr <- parse(text = request$expr)
21-
res <- try(eval(expr, globalenv()), silent = TRUE)
22-
str <- list(
23-
type = if (inherits(res, "try-error")) "error" else "output",
24-
result = utils::capture.output(print(res))
25-
)
26-
result <- jsonlite::toJSON(str, auto_unbox = TRUE, force = TRUE)
27-
writeLines(result, con)
28-
close(con)
14+
open = "r+"), silent = TRUE)
15+
if (inherits(con, "try-error")) {
16+
message(con)
17+
} else {
18+
tryCatch({
19+
line <- readLines(con, n = 1)
20+
request <- jsonlite::fromJSON(line)
21+
cat(sprintf("[%s]\n%s\n",
22+
request$time, request$expr))
23+
expr <- parse(text = request$expr)
24+
res <- try(eval(expr, globalenv()), silent = TRUE)
25+
str <- list(
26+
type = if (inherits(res, "try-error")) "error" else "output",
27+
result = utils::capture.output(print(res))
28+
)
29+
result <- jsonlite::toJSON(str, auto_unbox = TRUE, force = TRUE)
30+
writeLines(result, con)
31+
}, error = function(e) {
32+
message(e)
33+
}, finally = close(con))
34+
}
2935
}
3036
})

0 commit comments

Comments
 (0)