@@ -221,11 +221,20 @@ handle_plugins <- function(names = NULL, quiet = FALSE, mode) {
221
221
" {paste(names, collapse = ', ')}"
222
222
))
223
223
224
- if (mode == " enable" ) for (p in names ) enable_plugin(p , quiet = quiet )
225
- if (mode == " disable" ) for (p in names ) disable_plugin(p , quiet = quiet )
224
+ counter <- 0L
225
+ if (mode == " enable" ) for (p in names ) {
226
+ counter <- enable_plugin(p , quiet = quiet ) + counter
227
+ }
228
+ if (mode == " disable" ) for (p in names ) {
229
+ counter <- disable_plugin(p , quiet = quiet ) + counter
230
+ }
226
231
227
- if (! quiet ) message(" \n Rebuilding cache to reflect current plugin state ...\n " )
228
- qgis_configure(use_cached_data = FALSE , quiet = quiet )
232
+ if (counter > 0L ) {
233
+ if (! quiet ) {
234
+ message(" \n Rebuilding cache to reflect current plugin state ...\n " )
235
+ }
236
+ qgis_configure(use_cached_data = FALSE , quiet = quiet )
237
+ }
229
238
230
239
invisible (qgis_plugins())
231
240
}
@@ -234,6 +243,7 @@ handle_plugins <- function(names = NULL, quiet = FALSE, mode) {
234
243
235
244
# ' @keywords internal
236
245
enable_plugin <- function (name , quiet = FALSE ) {
246
+ error_detected <- FALSE
237
247
tryCatch(
238
248
{
239
249
qgis_run(args = c(" plugins" , " enable" , name ))
@@ -244,14 +254,17 @@ enable_plugin <- function(name, quiet = FALSE) {
244
254
" '{name}' was not successfully enabled. Error message was:\n\n {e}\n " ,
245
255
ifelse(" stderr" %in% names(e ) && nchar(e $ stderr ) > 0 , e $ stderr , " " )
246
256
))
257
+ assign(" error_detected" , TRUE , envir = parent.env(environment()))
247
258
}
248
259
)
260
+ if (error_detected ) invisible (FALSE ) else invisible (TRUE )
249
261
}
250
262
251
263
252
264
253
265
# ' @keywords internal
254
266
disable_plugin <- function (name , quiet = FALSE ) {
267
+ error_detected <- FALSE
255
268
tryCatch(
256
269
{
257
270
qgis_run(args = c(" plugins" , " disable" , name ))
@@ -262,6 +275,8 @@ disable_plugin <- function(name, quiet = FALSE) {
262
275
" '{name}' was not successfully disabled. Error message was:\n\n {e}\n " ,
263
276
ifelse(" stderr" %in% names(e ) && nchar(e $ stderr ) > 0 , e $ stderr , " " )
264
277
))
278
+ assign(" error_detected" , TRUE , envir = parent.env(environment()))
265
279
}
266
280
)
281
+ if (error_detected ) invisible (FALSE ) else invisible (TRUE )
267
282
}
0 commit comments