boB Rudis
4 years ago
13 changed files with 2152 additions and 12 deletions
@ -1,2 +1,5 @@ |
|||
0.2.0 |
|||
* anticonf configure script added |
|||
|
|||
0.1.0 |
|||
* Initial release |
|||
|
@ -0,0 +1,33 @@ |
|||
#' Return CTP hash of one data collected from a connection |
|||
#' |
|||
#' @param con a [connection] |
|||
#' @return data frame |
|||
#' @export |
|||
#' @examples |
|||
#' # All 3 shld be the same |
|||
#' hash_con(url("https://en.wikipedia.org/wiki/Donald_Knuth")) |
|||
#' hash_con(file(system.file("knuth", "local.html", package = "ssdeepr"))) |
|||
#' hash_con(gzfile(system.file("knuth", "local.gz", package = "ssdeepr"))) |
|||
hash_con <- function(con) { |
|||
|
|||
stopifnot(inherits(con, "connection")) |
|||
|
|||
if(!isOpen(con)){ |
|||
on.exit(close(con)) # also destroy con if 'open' fails |
|||
open(con, "rb") |
|||
} |
|||
|
|||
out <- raw(0) |
|||
|
|||
repeat { |
|||
tmp <- readBin(con, "raw", n = 32768L) |
|||
if (length(tmp) == 0) { |
|||
break |
|||
} else { |
|||
out <- c(out, tmp) |
|||
} |
|||
} |
|||
|
|||
hash_raw(out) |
|||
|
|||
} |
@ -0,0 +1,2 @@ |
|||
#!/bin/sh |
|||
rm -f src/Makevars |
@ -0,0 +1,75 @@ |
|||
#!/bin/sh |
|||
# Anticonf (tm) script by Jeroen Ooms (2018) |
|||
# This script will query 'pkg-config' for the required cflags and ldflags. |
|||
# If pkg-config is unavailable or does not find the library, try setting |
|||
# INCLUDE_DIR and LIB_DIR manually via e.g: |
|||
# R CMD INSTALL --configure-vars='INCLUDE_DIR=/.../include LIB_DIR=/.../lib' |
|||
|
|||
# Library settings |
|||
PKG_CONFIG_NAME="libfuzzy" |
|||
PKG_DEB_NAME="libfuzzy-dev" |
|||
PKG_RPM_NAME="libfuzzy-devel" |
|||
PKG_BREW_NAME="ssdeep" |
|||
PKG_TEST_HEADER="<fuzzy.h>" |
|||
PKG_LIBS_STATIC="-lfuzzy" |
|||
PKG_LIBS="-lfuzzy" |
|||
PKG_CFLAGS="" |
|||
|
|||
# Use pkg-config if available |
|||
if [ $(command -v pkg-config) ]; then |
|||
PKGCONFIG_CFLAGS=$(pkg-config --cflags --silence-errors ${PKG_CONFIG_NAME}) |
|||
PKGCONFIG_LIBS=$(pkg-config --libs ${PKG_CONFIG_NAME}) |
|||
fi |
|||
|
|||
# Note that cflags may be empty in case of success |
|||
if [ "$INCLUDE_DIR" ] || [ "$LIB_DIR" ]; then |
|||
echo "Found INCLUDE_DIR and/or LIB_DIR!" |
|||
PKG_CFLAGS="-I$INCLUDE_DIR $PKG_CFLAGS" |
|||
PKG_LIBS="-L$LIB_DIR $PKG_LIBS" |
|||
elif [ "$PKGCONFIG_CFLAGS" ] || [ "$PKGCONFIG_LIBS" ]; then |
|||
echo "Found pkg-config cflags and libs!" |
|||
PKG_CFLAGS=${PKGCONFIG_CFLAGS} |
|||
PKG_LIBS=${PKGCONFIG_LIBS} |
|||
elif [[ "$OSTYPE" == "darwin"* ]]; then |
|||
if [ $(command -v brew) ]; then |
|||
BREWDIR=$(brew --prefix) |
|||
else |
|||
curl -sfL "https://jeroen.github.io/autobrew/$PKG_BREW_NAME" > autobrew |
|||
source autobrew |
|||
fi |
|||
PKG_CFLAGS="-I$BREWDIR/opt/ssdeep/include" |
|||
PKG_LIBS="-L$BREWDIR/opt/ssdeep/lib -L$BREWDIR/opt/ssdeep/lib $PKG_LIBS" |
|||
fi |
|||
|
|||
# For debugging |
|||
echo "Using PKG_CFLAGS=$PKG_CFLAGS" |
|||
echo "Using PKG_LIBS=$PKG_LIBS" |
|||
|
|||
# Find compiler |
|||
CC=$(${R_HOME}/bin/R CMD config CC) |
|||
CFLAGS=$(${R_HOME}/bin/R CMD config CFLAGS) |
|||
CPPFLAGS=$(${R_HOME}/bin/R CMD config CPPFLAGS) |
|||
|
|||
# Test configuration |
|||
echo "#include $PKG_TEST_HEADER" | ${CC} ${CPPFLAGS} ${PKG_CFLAGS} ${CFLAGS} -E -xc - >/dev/null 2>&1 || R_CONFIG_ERROR=1; |
|||
|
|||
# Customize the error |
|||
if [ $R_CONFIG_ERROR ]; then |
|||
echo "------------------------- ANTICONF ERROR ---------------------------" |
|||
echo "Configuration failed because $PKG_CONFIG_NAME was not found. Try installing:" |
|||
echo " * deb: $PKG_DEB_NAME (Debian, Ubuntu, etc)" |
|||
echo " * rpm: $PKG_RPM_NAME (Fedora, EPEL)" |
|||
echo " * brew: $PKG_BREW_NAME (OSX)" |
|||
echo "If $PKG_CONFIG_NAME is already installed, check that 'pkg-config' is in your" |
|||
echo "PATH and PKG_CONFIG_PATH contains a $PKG_CONFIG_NAME.pc file. If pkg-config" |
|||
echo "is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:" |
|||
echo "R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'" |
|||
echo "--------------------------------------------------------------------" |
|||
exit 1; |
|||
fi |
|||
|
|||
# Write to Makevars |
|||
sed -e "s|@cflags@|$PKG_CFLAGS|" -e "s|@libs@|$PKG_LIBS|" src/Makevars.in > src/Makevars |
|||
|
|||
# Success |
|||
exit 0 |
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -0,0 +1,20 @@ |
|||
% Generated by roxygen2: do not edit by hand |
|||
% Please edit documentation in R/hash-con.R |
|||
\name{hash_con} |
|||
\alias{hash_con} |
|||
\title{Return CTP hash of one data collected from a connection} |
|||
\usage{ |
|||
hash_con(con) |
|||
} |
|||
\arguments{ |
|||
\item{con}{a \link{connection}} |
|||
} |
|||
\value{ |
|||
data frame |
|||
} |
|||
\description{ |
|||
Return CTP hash of one data collected from a connection |
|||
} |
|||
\examples{ |
|||
hash_con(url("https://en.wikipedia.org/wiki/Donald_Knuth")) |
|||
} |
@ -1,3 +1,7 @@ |
|||
CXX_STD = CXX11 |
|||
PKG_CXXFLAGS = |
|||
PKG_LIBS = -lfuzzy |
|||
PKG_CPPFLAGS=-I/usr/local/opt/ssdeep/include |
|||
PKG_LIBS=-L/usr/local/opt/ssdeep/lib -L/usr/local/opt/ssdeep/lib -lfuzzy |
|||
|
|||
all: clean |
|||
|
|||
clean: |
|||
rm -Rf $(SHLIB) $(OBJECTS) |
|||
|
@ -0,0 +1,7 @@ |
|||
PKG_CPPFLAGS=@cflags@ |
|||
PKG_LIBS=@libs@ |
|||
|
|||
all: clean |
|||
|
|||
clean: |
|||
rm -Rf $(SHLIB) $(OBJECTS) |
Loading…
Reference in new issue