From: blundellc Date: Sat, 13 Sep 2008 13:22:51 +0000 (+0000) Subject: depends: don't fail prematurely on unavailable packages X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=86569a91ef317282348af24819f272d58362a677;p=cran2deb.git depends: don't fail prematurely on unavailable packages git-svn-id: svn://svn.r-forge.r-project.org/svnroot/cran2deb@94 edb9625f-4e0d-4859-8d74-9fd3b1da38cb --- diff --git a/pkg/trunk/R/debiannaming.R b/pkg/trunk/R/debiannaming.R index ab5741b..2af857b 100644 --- a/pkg/trunk/R/debiannaming.R +++ b/pkg/trunk/R/debiannaming.R @@ -30,14 +30,17 @@ pkgname_as_debian <- function(name,repopref=NULL,version=NULL,binary=T,build=F) # now. if (!(name %in% rownames(available))) { bundle <- r_bundle_of(name) - if (is.na(bundle)) { - fail('package',name,'is not available') + if (!is.na(bundle)) { + name <- bundle } - name <- bundle } debname = tolower(name) if (binary) { - repopref <- tolower(repourl_as_debian(available[name,'Repository'])) + if (name %in% rownames(available)) { + repopref <- tolower(repourl_as_debian(available[name,'Repository'])) + } else if (is.null(repopref)) { + repopref <- 'unknown' + } debname = paste('r',repopref,debname,sep='-') } } diff --git a/pkg/trunk/R/rdep.R b/pkg/trunk/R/rdep.R index c29f62c..87ef168 100644 --- a/pkg/trunk/R/rdep.R +++ b/pkg/trunk/R/rdep.R @@ -19,13 +19,12 @@ r_requiring <- function(names) { for (name in names) { if (!(name %in% base_pkgs) && !(name %in% rownames(available))) { bundle <- r_bundle_of(name) - if (is.na(bundle)) { - fail('package',name,'is not available') + if (!is.na(bundle)) { + name = bundle + names <- c(names,bundle) } - name = bundle - names <- c(names,bundle) } - if (!is.na(available[name,'Contains'])) { + if (name %in% rownames(available) && !is.na(available[name,'Contains'])) { names <- c(names,r_bundle_contains(name)) } } @@ -69,10 +68,12 @@ r_dependencies_of <- function(name=NULL,description=NULL) { if (is.null(description)) { if (!(name %in% rownames(available))) { bundle <- r_bundle_of(name) - if (is.na(bundle)) { - fail('package',name,'is not available') + if (!is.na(bundle)) { + name <- bundle + } else { + # unavailable packages don't depend upon anything + return(data.frame()) } - name <- bundle } description <- data.frame() # keep only the interesting fields