]> git.donarmstrong.com Git - cran2deb.git/commitdiff
cran2deb: download, unpack and parse DESCRIPTION.
authorblundellc <blundellc@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Sat, 13 Sep 2008 13:08:30 +0000 (13:08 +0000)
committerblundellc <blundellc@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Sat, 13 Sep 2008 13:08:30 +0000 (13:08 +0000)
git-svn-id: svn://svn.r-forge.r-project.org/svnroot/cran2deb@8 edb9625f-4e0d-4859-8d74-9fd3b1da38cb

pkg/trunk/cran2deb [new file with mode: 0755]

diff --git a/pkg/trunk/cran2deb b/pkg/trunk/cran2deb
new file mode 100755 (executable)
index 0000000..90a8a37
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env r
+
+setup <- function() {
+    tmp <- tempfile('cran2deb')
+    dir.create(tmp)
+    return (tmp)
+}
+
+prepare.pkg <- function(dir, pkg, ...) {
+    # based loosely on library/utils/R/packages2.R::install.packages
+    tarball <- download.packages(pkg, dir, type="source")[1,2]
+    wd <- getwd()
+    setwd(dir)
+    system(paste('tar','xzf',tarball))
+    setwd(wd)
+    return (gsub("_\\.(zip|tar\\.gz)", "",
+                 gsub(.standard_regexps()$valid_package_version, "",
+                      tarball)))
+}
+
+parse.description <- function(path) {
+    return (read.dcf(paste(path,'DESCRIPTION',sep='/')))
+}
+
+cleanup <- function(dir) {
+    unlink(dir, recursive=T)
+}
+
+
+test <- function(pkg) {
+    dir <- setup()
+        description <- parse.description(prepare.pkg(dir,pkg))
+    cleanup(dir)
+    return(description)
+}
+