## ----setup, include = FALSE---------------------------------------------------
library(rirods)
library(httptest2)

start_vignette("icommands")

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  eval=is_irods_demo_running()
)

knitr::opts_knit$set(
  root.dir = tempdir()
)


## ----setup2, include=FALSE----------------------------------------------------
# # set user config directory to temporary location
# withr::local_envvar(
#   R_USER_CONFIG_DIR = tempdir()
# )
# eval(substitute(create_irods(x, overwrite = TRUE), list(x = rirods:::.irods_host)))
# iauth("rods", "rods")
# if (length(ils())> 0) {
#   for (file in ils()$logical_path) {
#     irm(file, recursive = TRUE)
#   }
# }
# imkdir("some_collection")
# x <- rnorm(100)
# isaveRDS(x, "some_collection/random_numbers.rds")
# imkdir("some_collection/subcollection")
# imeta("some_collection/random_numbers.rds",
#       operations = list(
#         list(operation="add", attribute="length", value="100", units="items"),
#         list(operation="add", attribute="distribution", value="normal")
#       ))
# y <- rnorm(200)
# isaveRDS(y, "200numbers.rds")

## -----------------------------------------------------------------------------
# ils() # ils
# ils("some_collection") # ils some_collection
# ils("some_collection", stat = TRUE) # ils -l some_collection
# ils("some_collection", permissions = TRUE) # ils -A some_collection
# ils(permissions=TRUE, stat = TRUE) # ils -Al

## -----------------------------------------------------------------------------
# filter_ils <- function(pattern, ils_output = ils()) {
#   stopifnot(inherits(ils_output, "irods_df"))
#   ils_df <- as.data.frame(ils_output)
#   if (length(pattern) == 1) {
#     filtered <- ils_df[grepl(pattern, ils_df$logical_path), ]
#   } else {
#     filtered <- ils_df[basename(ils_df$logical_path) %in% pattern, ]
#   }
#   rirods:::new_irods_df(filtered)
# }

## -----------------------------------------------------------------------------
# my_files <- ils("some_collection", metadata = TRUE)
# my_files
# filter_ils("random", my_files) # imeta ls -d some_collection/random_numbers.rds

## ----include=FALSE------------------------------------------------------------
# change_state()

## -----------------------------------------------------------------------------
# imkdir("new_collection") # imkdir new_collection
# ils()
# 
# # imkdir -p another_collection/subcollection
# imkdir("another_collection/subcollection", create_parent_collections = TRUE)
# 
# ils()
# ils("another_collection")

## ----include=FALSE------------------------------------------------------------
# change_state()

## -----------------------------------------------------------------------------
# irm("200numbers.rds", force = FALSE) # irm 200numbers.rds
# ils("/tempZone/trash/home/rods")
# 
# irm("another_collection", force = TRUE, recursive = TRUE) # irm -rf another_collection
# iquery("SELECT COLL_NAME WHERE COLL_NAME LIKE '%_collection'")

## ----include=FALSE------------------------------------------------------------
# change_state()

## -----------------------------------------------------------------------------
# icd("some_collection")
# ils(metadata=TRUE)
# 
# # imeta add -C subcollection foo bar baz
# imeta("subcollection",
#       operations = list(
#         list(operation="add", attribute="foo", value="bar", units="baz")
#         )
#       )
# 
# # imeta rm -d random_numbers.rds distribution normal
# imeta("random_numbers.rds",
#       operations = list(
#         list(operation="remove", attribute="distribution", value="normal")
#       ))
# 
# ils(metadata=TRUE)

## ----include=FALSE------------------------------------------------------------
# change_state()

## -----------------------------------------------------------------------------
# # imeta mod -d random_numbers.rds length 100 items u:elements
# imeta("random_numbers.rds",
#       operations = list(
#         list(operation="remove", attribute="length", value="100", units="items"),
#         list(operation="add", attribute="length", value="100", units="elements")
#       ))
# ils(metadata=TRUE)

## ----cleanup, include=FALSE---------------------------------------------------
# if (length(ils())> 0) {
#   for (file in ils()$logical_path) {
#     irm(file, recursive = TRUE)
#   }
# }
# end_vignette()
# unlink(rirods:::path_to_irods_conf())

