From a150d6f12d6da6856a82624cb3468f9c1990ed1d Mon Sep 17 00:00:00 2001 From: Mossa Date: Fri, 24 Apr 2026 11:21:06 +0200 Subject: [PATCH 1/2] rpkg: align R console output with CLI warnings and messages - dvs_add/get/status: warning() for each per-file error (mirrors CLI eprintln!) - dvs_status: message() when result is empty ("No tracked files" / "...matching the filter") - dvs_get: message() with total file count and size after successful retrieval Co-Authored-By: Claude Sonnet 4.6 --- dvs-rpkg/R/dvs-commands.R | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/dvs-rpkg/R/dvs-commands.R b/dvs-rpkg/R/dvs-commands.R index 6c4a561a..7413b0a4 100644 --- a/dvs-rpkg/R/dvs-commands.R +++ b/dvs-rpkg/R/dvs-commands.R @@ -42,6 +42,11 @@ dvs_add <- function( progress_callback = progress_callback ) + error_rows <- result[!is.na(result[["error"]]), ] + for (i in seq_len(nrow(error_rows))) { + warning("Error adding ", error_rows$path[i], ": ", error_rows$error[i], call. = FALSE) + } + if (!is.null(result$size)) { result$size <- new_dvs_bytes(result$size) } @@ -70,6 +75,22 @@ dvs_status <- function( status = status ) + if (nrow(status_data_frame) == 0) { + if (setequal(status, c("current", "absent", "unsynced"))) { + message("No tracked files") + } else { + message("No tracked files matching the filter") + } + } else { + error_rows <- status_data_frame[!is.na(status_data_frame[["error"]]), ] + for (i in seq_len(nrow(error_rows))) { + warning( + "Error getting status for ", error_rows$path[i], ": ", error_rows$error[i], + call. = FALSE + ) + } + } + if (!is.null(status_data_frame$size)) { status_data_frame$size <- new_dvs_bytes(status_data_frame$size) } @@ -94,6 +115,18 @@ dvs_get <- function(paths = character(0), glob = NULL, dry_run = NULL) { progress_callback = progress_callback ) + error_rows <- get_data_frame[!is.na(get_data_frame[["error"]]), ] + for (i in seq_len(nrow(error_rows))) { + warning("Error: ", error_rows$path[i], " - ", error_rows$error[i], call. = FALSE) + } + + copied_mask <- !is.na(get_data_frame[["outcome"]]) & get_data_frame[["outcome"]] == "copied" + total_files <- sum(copied_mask) + if (total_files > 0) { + total_bytes <- sum(get_data_frame[["size"]][copied_mask]) + message("Total: ", total_files, " files, ", format_byte_size(total_bytes)) + } + if (!is.null(get_data_frame$size)) { get_data_frame$size <- new_dvs_bytes(get_data_frame$size) } From 0bfda3bbb1577f9d3a748ed062312646ede6a542 Mon Sep 17 00:00:00 2001 From: Mossa Date: Fri, 24 Apr 2026 11:26:24 +0200 Subject: [PATCH 2/2] rpkg: drop per-file error warnings; errors are in the returned data Co-Authored-By: Claude Sonnet 4.6 --- dvs-rpkg/R/dvs-commands.R | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/dvs-rpkg/R/dvs-commands.R b/dvs-rpkg/R/dvs-commands.R index 7413b0a4..4e099afb 100644 --- a/dvs-rpkg/R/dvs-commands.R +++ b/dvs-rpkg/R/dvs-commands.R @@ -42,11 +42,6 @@ dvs_add <- function( progress_callback = progress_callback ) - error_rows <- result[!is.na(result[["error"]]), ] - for (i in seq_len(nrow(error_rows))) { - warning("Error adding ", error_rows$path[i], ": ", error_rows$error[i], call. = FALSE) - } - if (!is.null(result$size)) { result$size <- new_dvs_bytes(result$size) } @@ -81,14 +76,6 @@ dvs_status <- function( } else { message("No tracked files matching the filter") } - } else { - error_rows <- status_data_frame[!is.na(status_data_frame[["error"]]), ] - for (i in seq_len(nrow(error_rows))) { - warning( - "Error getting status for ", error_rows$path[i], ": ", error_rows$error[i], - call. = FALSE - ) - } } if (!is.null(status_data_frame$size)) { @@ -115,11 +102,6 @@ dvs_get <- function(paths = character(0), glob = NULL, dry_run = NULL) { progress_callback = progress_callback ) - error_rows <- get_data_frame[!is.na(get_data_frame[["error"]]), ] - for (i in seq_len(nrow(error_rows))) { - warning("Error: ", error_rows$path[i], " - ", error_rows$error[i], call. = FALSE) - } - copied_mask <- !is.na(get_data_frame[["outcome"]]) & get_data_frame[["outcome"]] == "copied" total_files <- sum(copied_mask) if (total_files > 0) {