]> git.donarmstrong.com Git - cran2deb.git/blob - pkg/trunk/R/db.R
cran2deb: oops. correct two cut'n'pastos in previous commit.
[cran2deb.git] / pkg / trunk / R / db.R
1
2 db.start <- function() {
3     drv <- dbDriver('SQLite')
4     con <- dbConnect(drv, dbname=file.path(root,'data/cran2deb.db'))
5     tables <- dbListTables(con)
6     if (!dbExistsTable(con,'sysreq_override')) {
7         dbGetQuery(con,paste('CREATE TABLE sysreq_override ('
8                   ,' debian_name TEXT UNIQUE NOT NULL'
9                   ,',r_pattern TEXT UNIQUE NOT NULL'
10                   ,')'))
11     }
12     if (!dbExistsTable(con,'license_override')) {
13         dbGetQuery(con,paste('CREATE TABLE license_override ('
14                   ,' name TEXT UNIQUE NOT NULL'
15                   ,',file_sha1 TEXT UNIQUE'
16                   ,',accept INT NOT NULL'
17                   ,')'))
18     }
19     return(con)
20 }
21
22 db.stop <- function(con) {
23     dbDisconnect(con)
24 }
25
26 db.quote <- function(text) {
27     return(paste('"',gsub('([^][[:alnum:]*?. ()<>:/=-])','\\\\\\1',text),'"',sep=''))
28 }
29
30 db.sysreq.override <- function(sysreq_text) {
31     con <- db.start()
32     results <- dbGetQuery(con,paste(
33                     'SELECT debian_name FROM sysreq_override WHERE'
34                             ,db.quote(sysreq_text),'GLOB r_pattern'))
35     db.stop(con)
36     return(results$debian_name)
37 }
38
39 db.add.sysreq.override <- function(pattern,debian_name) {
40     con <- db.start()
41     results <- dbGetQuery(con,paste(
42                      'INSERT OR REPLACE INTO sysreq_override'
43                     ,'(debian_name, r_pattern) VALUES ('
44                     ,' ',db.quote(debian_name)
45                     ,',',db.quote(pattern)
46                     ,')'))
47     db.stop(con)
48 }
49
50 db.license.override.name <- function(name) {
51     con <- db.start()
52     results <- dbGetQuery(con,paste(
53                     'SELECT accept FROM license_override WHERE'
54                             ,db.quote(name),'= name'))
55     db.stop(con)
56     return(results$accept)
57 }
58
59 db.add.license.override.name <- function(name,accept) {
60     con <- db.start()
61     results <- dbGetQuery(con,paste(
62                      'INSERT OR REPLACE INTO license_override'
63                     ,'(name, accept) VALUES ('
64                     ,' ',db.quote(name)
65                     ,',',db.quote(accept)
66                     ,')'))
67     db.stop(con)
68 }
69
70 db.license.override.file <- function(file_sha1) {
71     con <- db.start()
72     results <- dbGetQuery(con,paste(
73                     'SELECT accept FROM license_override WHERE'
74                             ,db.quote(file_sha1),'= file_sha1'))
75     db.stop(con)
76     return(results$accept)
77 }
78
79 db.add.license.override.file <- function(name,file_sha1,accept) {
80     con <- db.start()
81     results <- dbGetQuery(con,paste(
82                      'INSERT OR REPLACE INTO license_override'
83                     ,'(name, file_sha1, accept) VALUES ('
84                     ,' ',db.quote(name)
85                     ,',',db.quote(file_sha1)
86                     ,',',db.quote(accept)
87                     ,')'))
88     db.stop(con)
89 }
90