]> git.donarmstrong.com Git - cran2deb.git/blobdiff - trunk/exec/update_cache
use package filters and use omegahat in addition to bioc
[cran2deb.git] / trunk / exec / update_cache
index b47921be8c3d0561de67a57c2e23a06852de4319..8107b745a50622d48518d95b66111c573ad8dc70 100755 (executable)
@@ -14,22 +14,35 @@ ctv.available <- NULL
 
 mirrors <- NULL
 mirrors <- c(mirrors,CRAN='http://cran.r-project.org')
-#mirrors <- c(mirrors,BioC='http://www.bioconductor.org/packages/2.7')
+mirrors <- c(mirrors,BioC='http://www.bioconductor.org/packages/2.11')
+mirrors <- c(mirrors,Omegahat="http://www.omegahat.org/R/src/contrib")
 
 verbose<-TRUE
+debug<-FALSE
+package.filters <- c("OS_type","duplicates")
 
 for (mirror.name in names(mirrors)) {
        mirror.url<-mirrors[mirror.name]
        message(paste("Updating list of available R packages from ",mirror.name," [",mirror.url,"].\n",sep=""))
        packages.retrieved <- NULL
        if ("CRAN" == mirror.name) {
-               packages.retrieved <- available.packages(contrib.url(mirror.url))
+               packages.retrieved <- available.packages(contrib.url(mirror.url),filters=package.filters)
+                print(packages.retrieved[grep("SNP",rownames(packages.retrieved)),])
        } else if ("BioC" == mirror.name) {
-               for (s in c('bioc')) {
-                       packages.retrieved <- rbind(packages.retrieved,contrib.url(available.packages(paste(mirror.url,s,sep="/"))))
+               repos <- c(
+                       "bioc"
+                       ,"data/annotation"
+                       ,"data/experiment"
+                       ,"extra"
+               )
+               for (s in repos) {
+                       packages.retrieved <- rbind(
+                               packages.retrieved,
+                               available.packages(contrib.url(paste(mirror.url,s,sep="/")),filters=package.filters)
+                       )
                }
        } else {
-               packages.retrieved <- available.packages(mirror.url)
+               packages.retrieved <- available.packages(mirror.url,filters=package.filters)
        }
        if (verbose) message(paste("Retrieved ",nrow(packages.retrieved)," package descriptions.\n",sep=""))
        available <- rbind(available, packages.retrieved)
@@ -41,7 +54,11 @@ for (mirror.name in names(mirrors)) {
 
 dupes <- duplicated(rownames(available), fromLast=T)
 if (sum(dupes)>0) {
-       if (verbose) cat("Found ",sum(dupes)," packages with the same name in different distributions. Those are now removed.\n",sep="")
+       if (verbose) {
+          cat("Found ",sum(dupes)," packages with the same name in different distributions. Those are now removed.\n",sep="")
+          print(available[dupes,])
+        }
+          
        available <- available[!dupes,,drop=F]
 } else {
        if (length(mirrors)>1) cat("All packages have different names.")
@@ -49,10 +66,24 @@ if (sum(dupes)>0) {
 
 # TODO: Check if not better a dedicated tool should be called for this
 message('updating list of base R packages...')
-base_pkgs <- readLines(pipe(paste('sudo pbuilder --execute --override-config --configfile'
-                                 ,shQuote(pbuilder_config),'-- /usr/bin/R --vanilla 2>&1 >/dev/null <'
-                                 ,shQuote(file.path(root,'exec/get_base_pkgs'))
-                                 ,'| grep -v ^W:')))
+base_pkgs <- c("base",
+               "compiler",
+               "datasets",
+               "graphics",
+               "grDevices",
+               "grid",
+               "methods",
+               "parallel",
+               "splines",
+               "stats",
+               "stats4",
+               "tcltk",
+               "tools",
+               "utils")
+# readLines(pipe(paste('sudo pbuilder --execute --override-config --configfile'
+#                                  ,shQuote(pbuilder_config),'-- /usr/bin/R --vanilla 2>&1 >/dev/null <'
+#                                  ,shQuote(file.path(root,'exec/get_base_pkgs'))
+#                                  ,'| grep -v ^W:')))
 
 if (any(grep("^E:",base_pkgs,value=FALSE))) {
        cat("Cannot continue, the following error occurred:\n")
@@ -62,7 +93,7 @@ if (any(grep("^E:",base_pkgs,value=FALSE))) {
 }
 
 
-if (verbose) {
+if (debug) {
        cat("The following base packages were determined:\n")
        print(base_pkgs)
 }