X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tags%2Fpre-dual%2FR%2Fdebiannaming.R;fp=tags%2Fpre-dual%2FR%2Fdebiannaming.R;h=7e07c9e6c40f2eeac4d3e03d41f4ff629163eaac;hb=ab9547f1dd3779e34528a7a638ed085d5b9c5e26;hp=0000000000000000000000000000000000000000;hpb=4baac28764128067cb2fd6343321e7e0f522bdfd;p=cran2deb.git diff --git a/tags/pre-dual/R/debiannaming.R b/tags/pre-dual/R/debiannaming.R new file mode 100644 index 0000000..7e07c9e --- /dev/null +++ b/tags/pre-dual/R/debiannaming.R @@ -0,0 +1,46 @@ +repourl_as_debian <- function(url) { + # map the url to a repository onto its name in debian package naming + if (length(grep('cran',url))) { + return('cran') + } + if (length(grep('bioc',url))) { + return('bioc') + } + fail('unknown repository',url) +} + +pkgname_as_debian <- function(name,repopref=NULL,version=NULL,binary=T,build=F) { + # generate the debian package name corresponding to the R package name + if (name %in% base_pkgs) { + name = 'R' + } + if (name == 'R') { + # R is special. + if (binary) { + if (build) { + debname='r-base-dev' + } else { + debname='r-base-core' + } + } else { + debname='R' + } + } else { + # XXX: data.frame rownames are unique, so always override repopref for + # now. + debname = tolower(name) + if (binary) { + 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='-') + } + } + if (!is.null(version) && length(version) > 1) { + debname = paste(debname,' (',version,')',sep='') + } + return(debname) +} +