2021-05-05 10:34:22 -07:00
'use strict' ;
const async = require ( 'async' ) ,
2021-06-03 22:51:28 -07:00
fs = require ( 'fs' ) ,
safe = require ( 'safetydance' ) ;
2021-05-05 10:34:22 -07:00
const CERTS _DIR = '/home/yellowtent/boxdata/certs' ;
exports . up = function ( db , callback ) {
db . runSql ( 'ALTER TABLE subdomains ADD COLUMN certificateJson MEDIUMTEXT' , function ( error ) {
if ( error ) return callback ( error ) ;
db . all ( 'SELECT * FROM subdomains' , [ ] , function ( error , subdomains ) {
if ( error ) return callback ( error ) ;
async . eachSeries ( subdomains , function ( subdomain , iteratorDone ) {
2021-06-03 22:51:28 -07:00
const cert = safe . fs . readFileSync ( ` ${ CERTS _DIR } / ${ subdomain . subdomain } . ${ subdomain . domain } .user.cert ` , 'utf8' ) ;
const key = safe . fs . readFileSync ( ` ${ CERTS _DIR } / ${ subdomain . subdomain } . ${ subdomain . domain } .user.key ` , 'utf8' ) ;
if ( ! cert || ! key ) return iteratorDone ( ) ;
2021-05-05 10:34:22 -07:00
const certificate = { cert , key } ;
db . runSql ( 'UPDATE subdomains SET certificateJson=? WHERE domain=? AND subdomain=?' , [ JSON . stringify ( certificate ) , subdomain . domain , subdomain . subdomain ] , iteratorDone ) ;
} , callback ) ;
} ) ;
} ) ;
} ;
exports . down = function ( db , callback ) {
async . series ( [
db . runSql . run ( db , 'ALTER TABLE subdomains DROP COLUMN certificateJson' )
] , callback ) ;
} ;