]> git.donarmstrong.com Git - cran2deb.git/blobdiff - trunk/R/db.R
generate cran2deb status web pages
[cran2deb.git] / trunk / R / db.R
index 5c87ed22a79e4141ecbc6748ca841c5fb89f8165..75c658cf1fcacac1c4d62e4ccfcf82812b04b26d 100644 (file)
@@ -70,7 +70,13 @@ db_start <- function() {
     if (!dbExistsTable(con,'blacklist_packages')) {
         dbGetQuery(con,paste('CREATE TABLE blacklist_packages ('
                   ,' package TEXT PRIMARY KEY NOT NULL '
-                  ,',reason TEXT NOT NULL '
+                  ,',nonfree INTEGER NOT NULL DEFAULT 0'
+                  ,',obsolete INTEGER NOT NULL DEFAULT 0'
+                  ,',broken_dependency INTEGER NOT NULL DEFAULT 0'
+                  ,',unsatisfied_dependency INTEGER NOT NULL DEFAULT 0'
+                  ,',breaks_cran2deb INTEGER NOT NULL DEFAULT 0'
+                  ,',other INTEGER NOT NULL DEFAULT 0'
+                  ,',explanation TEXT NOT NULL '
                   ,')'))
     }
     return(con)
@@ -338,17 +344,16 @@ db_builds <- function(pkgname) {
 
 db_cleanup_builds <- function(build) {
     build$success <- as.logical(build$success)
-    o<-options(digits.secs = 6)
-    dt <- as.data.frame(t(data.frame(sapply(row.names(build),
-            function(r)
-                list(as.POSIXct(strptime(paste(build[r,]$date_stamp,build[r,]$time_stamp)
-                                        ,paste(db_date_format,db_time_format))))))))
-    options(o)
-    names(dt) <- 'date_stamp'
-    row.names(dt) <- row.names(build)
+    #o <-options(digits.secs = 6)
+    dt <- as.POSIXct(strptime(paste(as.character(build[,"date_stamp"]), as.character(build[,"time_stamp"])),
+                              paste(db_date_format, db_time_format)))
     build$time_stamp <- NULL
     build$date_stamp <- NULL
-    return(cbind(build,dt))
+    newdf <- data.frame(build, date_stamp=dt)
+    #print(newdf[, -grep("log", colnames(newdf))])
+    #options(o)
+    #print(newdf[, -grep("log", colnames(newdf))])
+    return(newdf)
 }
 
 db_latest_build <- function(pkgname) {
@@ -415,3 +420,48 @@ db_blacklist_packages <- function() {
     db_stop(con)
     return(packages)
 }
+
+db_blacklist_reasons <- function () {
+    con <- db_start()
+    packages <- dbGetQuery(con,'SELECT package,explanation from blacklist_packages')
+    db_stop(con)
+    return(packages)
+}
+
+db_todays_builds <- function() {
+    today <- db_quote(format(Sys.time(), db_date_format))
+    con <- db_start()
+    builds <- dbGetQuery(con,paste('select id,success,system,package,
+                                    r_version as version,deb_epoch as epo,
+                                    deb_revision as rev, scm_revision as svnrev,
+                                    db_version as db,date_stamp,time_stamp
+                                    from builds where date_stamp = ',today))
+    db_stop(con)
+    return(builds)
+}
+
+db_successful_builds <- function() {
+    con <- db_start()
+    builds <- dbGetQuery(con,'select system,package,r_version,date_stamp,time_stamp
+                              from builds natural join (select system,package,max(id) as id
+                                                        from builds
+                                                        where package not in
+                                                                (select package from blacklist_packages)
+                                                        group by package,system)
+                              where success = 1')
+    db_stop(con)
+    return(builds)
+}
+
+db_failed_builds <- function() {
+    con <- db_start()
+    builds <- dbGetQuery(con,'select system,package,r_version,date_stamp,time_stamp
+                              from builds natural join (select system,package,max(id) as id
+                                                        from builds
+                                                        where package not in
+                                                                (select package from blacklist_packages)
+                                                        group by package,system)
+                              where success = 0')
+    db_stop(con)
+    return(builds)
+}