From: blundellc Date: Sat, 13 Sep 2008 13:17:30 +0000 (+0000) Subject: cran2deb: overrides of licenses and system requirements (database backend only). X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=4128cb5e7c6f18640db93a44ca4dd2ae707d15d5;p=cran2deb.git cran2deb: overrides of licenses and system requirements (database backend only). To follow: some kind of user interface. git-svn-id: svn://svn.r-forge.r-project.org/svnroot/cran2deb@52 edb9625f-4e0d-4859-8d74-9fd3b1da38cb --- diff --git a/pkg/trunk/DESCRIPTION b/pkg/trunk/DESCRIPTION index ecd30f7..9cf7805 100644 --- a/pkg/trunk/DESCRIPTION +++ b/pkg/trunk/DESCRIPTION @@ -4,8 +4,8 @@ Date: 2008-07-14 Title: Convert CRAN packages into Debian packages Author: Charles Blundell , with assistance from Dirk Eddelbuettel <> Maintainer: Charles Blundell -Depends: ctv, utils -SystemRequirements: rc +Depends: ctv, utils, RSQLite, DBI +SystemRequirements: rc, pbuilder, debian toolchain, web server Description: Convert CRAN packages into Debian packages, mostly unassisted, easily subverting the R package system. License: GPL-3 diff --git a/pkg/trunk/R/db.R b/pkg/trunk/R/db.R new file mode 100644 index 0000000..a52f6d6 --- /dev/null +++ b/pkg/trunk/R/db.R @@ -0,0 +1,90 @@ + +db.start <- function() { + drv <- dbDriver('SQLite') + con <- dbConnect(drv, dbname=file.path(root,'data/cran2deb.db')) + tables <- dbListTables(con) + if (!dbExistsTable(con,'sysreq_override')) { + dbGetQuery(con,paste('CREATE TABLE sysreq_override (' + ,' debian_name TEXT UNIQUE NOT NULL' + ,',r_pattern TEXT UNIQUE NOT NULL' + ,')')) + } + if (!dbExistsTable(con,'license_override')) { + dbGetQuery(con,paste('CREATE TABLE license_override (' + ,' name TEXT UNIQUE NOT NULL' + ,',file_sha1 TEXT UNIQUE' + ,',accept INT NOT NULL' + ,')')) + } + return(con) +} + +db.stop <- function(con) { + dbDisconnect(con) +} + +db.quote <- function(text) { + return(paste('"',gsub('([^][[:alnum:]*?. ()<>:/=-])','\\\\\\1',text),'"',sep='')) +} + +db.sysreq.override <- function(sysreq_text) { + con <- db.start() + results <- dbGetQuery(con,paste( + 'SELECT debian_name FROM sysreq_override WHERE' + ,db.quote(sysreq_text),'GLOB r_pattern')) + db.stop(con) + return(results$debian_name) +} + +db.add.sysreq.override <- function(pattern,debian_name) { + con <- db.start() + results <- dbGetQuery(con,paste( + 'INSERT OR REPLACE INTO sysreq_override' + ,'(debian_name, r_pattern) VALUES (' + ,' ',db.quote(debian_name) + ,',',db.quote(pattern) + ,')')) + db.stop(con) +} + +db.license.override.name <- function(license_name) { + con <- db.start() + results <- dbGetQuery(con,paste( + 'SELECT accept FROM license_override WHERE' + ,db.quote(license_name),'= name')) + db.stop(con) + return(results$debian_name) +} + +db.add.license.override.name <- function(name,accept) { + con <- db.start() + results <- dbGetQuery(con,paste( + 'INSERT OR REPLACE INTO license_override' + ,'(name, accept) VALUES (' + ,' ',db.quote(name) + ,',',db.quote(accept) + ,')')) + db.stop(con) +} + +db.license.override.file <- function(file_sha1) { + con <- db.start() + results <- dbGetQuery(con,paste( + 'SELECT accept FROM license_override WHERE' + ,db.quote(file_sha1),'= file_sha1')) + db.stop(con) + return(results$debian_name) +} + +db.add.license.override.file <- function(name,file_sha1,accept) { + con <- db.start() + results <- dbGetQuery(con,paste( + 'INSERT OR REPLACE INTO license_override' + ,'(name, file_sha1, accept) VALUES (' + ,' ',db.quote(name) + ,',',db.quote(file_sha1) + ,',',db.quote(accept) + ,')')) + db.stop(con) +} + diff --git a/pkg/trunk/R/zzz.R b/pkg/trunk/R/zzz.R index 6361ea7..c5e78f0 100644 --- a/pkg/trunk/R/zzz.R +++ b/pkg/trunk/R/zzz.R @@ -1,3 +1,5 @@ +library(DBI) +library(RSQLite) changesfile <- function(srcname,version='*') { return(file.path(pbuilder_results diff --git a/pkg/trunk/data/cran2deb.db b/pkg/trunk/data/cran2deb.db new file mode 100644 index 0000000..e69de29