R/utils.R

Defines functions relativePath readlink

readlink = function(a) {
  f = pipe(paste("readlink -f",a))
  ret = readLines(f)
  close(f)
  # for non existing paths on mac
  if (length(ret) == 0 || ret == "") ret = a
  ret
}

relativePath = function(a,b) {
  a = readlink(a)
  b = readlink(b)
  a = strsplit(a,"/")[[1]]
  b = strsplit(b,"/")[[1]]
  k = 1:min(length(a),length(b))
  k = min(which(a[k] != b[k]))
  ret = c(rep("..",length(b)-k),a[k:length(a)])
  ret = paste(ret,collapse="/")
  ret
}
llaniewski/rtemplate documentation built on Feb. 4, 2024, 12:29 p.m.