]> git.donarmstrong.com Git - cran2deb.git/commitdiff
cran2deb: overrides of licenses and system requirements (database backend only).
authorblundellc <blundellc@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Sat, 13 Sep 2008 13:17:30 +0000 (13:17 +0000)
committerblundellc <blundellc@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Sat, 13 Sep 2008 13:17:30 +0000 (13:17 +0000)
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

pkg/trunk/DESCRIPTION
pkg/trunk/R/db.R [new file with mode: 0644]
pkg/trunk/R/zzz.R
pkg/trunk/data/cran2deb.db [new file with mode: 0644]

index ecd30f795718adf62e2eaa98c9695ec268265c03..9cf7805f18efce7bebbaa1e6d716ac2cf1e59f6d 100644 (file)
@@ -4,8 +4,8 @@ Date: 2008-07-14
 Title: Convert CRAN packages into Debian packages
 Author: Charles Blundell <blundellc@gmail.com>, with assistance from Dirk Eddelbuettel <>
 Maintainer: Charles Blundell <blundellc@gmail.com>
-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 (file)
index 0000000..a52f6d6
--- /dev/null
@@ -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)
+}
+
index 6361ea75b31e617082549cb7b9791590945b86bd..c5e78f03e74f939e9fbc54caf9e4889f43fbb921 100644 (file)
@@ -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 (file)
index 0000000..e69de29