--- output: rmarkdown::github_document --- [![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/0.1.0/active.svg)](http://www.repostatus.org/#active) [![Travis-CI Build Status](https://travis-ci.org/hrbrmstr/wand.svg?branch=master)](https://travis-ci.org/hrbrmstr/wand) `wand` : Retrieve 'Magic' Attributes from Files and Directories The `libmagic` library must be installed on *nix/macOS and available to use this. - `apt-get install libmagic-dev` on Debian-ish systems - `brew install libmagic` on macOS While the package was developed using the 5.28 version of `libmagic` it has been configured to work with older versions. Note that some fields in the resultant data frame might not be available with older library versions. When using the function `magic_wand_file()` it checks for which version of `libmagic` is installed on your system and provides a suitable `magic.mgc` file for it. The package also works on Windows but it's a bit of a hack because, well, _Windows_. The Windows version makes two `system2()` calls and relies on Rtools being installed and `file.exe` being available on the Windows `PATH`, so it's sub-optimal at best. Help to get it working in C would be greatly appreciated. The following functions are implemented: - `incant` : returns the "magic" metadata of the files in the input vector (as a data frame) - `magic_wand_file` : provides a full path to the package-provided `magic` file ### Installation ```{r eval=FALSE} devtools::install_github("hrbrmstr/wand") ``` ```{r echo=FALSE, message=FALSE, warning=FALSE, error=FALSE} options(width=120) ``` ### Usage ```{r message=FALSE} library(wand) library(magrittr) library(dplyr) system.file("img", package="wand") %>% list.files(full.names=TRUE) %>% incant() %>% glimpse() # Use a non-system magic-file system.file("img", package="wand") %>% list.files(full.names=TRUE) %>% incant(magic_wand_file()) %>% select(description) %>% unlist(use.names=FALSE) # current verison packageVersion("wand") ``` ### Test Results ```{r message=FALSE} library(wand) library(testthat) date() test_dir("tests/") ```