diff --git a/.gitignore b/.gitignore index a29646bd..09d2095e 100644 --- a/.gitignore +++ b/.gitignore @@ -39,4 +39,9 @@ build/Release # see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git node_modules public/uploads/files -!content/extensions/node_modules/* \ No newline at end of file +!content/extensions/node_modules/* +content/extensions/node_modules/periodicjs.ext.admin/node_modules +content/extensions/node_modules/periodicjs.ext.dbseed/node_modules +content/extensions/node_modules/periodicjs.ext.default_routes/node_modules +content/extensions/node_modules/periodicjs.ext.login/node_modules +content/extensions/node_modules/periodicjs.ext.mailer/node_modules \ No newline at end of file diff --git a/content/extensions/node_modules/periodicjs.ext.admin/package.json b/content/extensions/node_modules/periodicjs.ext.admin/package.json index 3b52aeb2..9c804141 100644 --- a/content/extensions/node_modules/periodicjs.ext.admin/package.json +++ b/content/extensions/node_modules/periodicjs.ext.admin/package.json @@ -22,7 +22,7 @@ "silkscreenjs": "0.1.3", "letterpressjs": "0.0.3", "superagent": "0.18.0", - "codemirror": "4.2.0", + "codemirror": "4.2.0" }, "readme": "periodicjs.ext.admin\n====================\n\ncontent management administration for a periodicjs based cms\n", "readmeFilename": "README.md", diff --git a/content/extensions/node_modules/periodicjs.ext.install/controller/install.js b/content/extensions/node_modules/periodicjs.ext.install/controller/install.js index a8160b83..91a507d7 100644 --- a/content/extensions/node_modules/periodicjs.ext.install/controller/install.js +++ b/content/extensions/node_modules/periodicjs.ext.install/controller/install.js @@ -3,6 +3,7 @@ var path = require('path'), async = require('async'), fs = require('fs-extra'), + npm = require("npm"), mongoose = require('mongoose'), appController = require(path.join(process.cwd(),'app/controller/application')), logdir = path.resolve(process.cwd(),'logs/'), @@ -64,7 +65,26 @@ var configurePeriodic = function(req,res,next,options){ User = mongoose.model('User',userSchema), asyncTasks = {}; - var writeConfJson = function(){ + var installExtensionDependencies = function(extname,callback){ + var extdir = path.join(process.cwd(),'content/extensions/node_modules',extname); + console.log("trying to install: ",extname,"to",extdir); + + applicationController.async_run_cmd( + 'npm', + ['install','--prefix','content/extensions/node_modules/'+extname+'/','content/extensions/node_modules/'+extname+'/','--production'], + function(consoleoutput){ + update_outputlog({ + logdata : consoleoutput + }); + }, + callback + ); + // node index.js --cli --controller extension --install true --name "typesettin/periodicjs.ext.install" --version latest + //npm install --prefix content/extensions/node_modules/periodicjs.ext.mailer/ content/extensions/node_modules/periodicjs.ext.mailer/ + }; + + + var writeConfJson = function(callback){ var confJsonFilePath = path.resolve(process.cwd(),'content/config/config.json'), confJson={ "application":{ @@ -107,26 +127,22 @@ var configurePeriodic = function(req,res,next,options){ break; } - update_outputlog({ - logdata : 'installed, config.conf updated \r\n ====##CONFIGURED##====', - callback : function(err){ - } - }); - fs.outputJson(confJsonFilePath,confJson,function(err){ + fs.outputJson(confJsonFilePath,confJson,function(err,data){ if(err){ - errorlog_outputlog({ - logdata : err.message, - cli : options.cli - }); + callback(err,null); } else{ - if(options.cli){ - logger.info('installed, config.conf updated \r\n ====##CONFIGURED##===='); - process.exit(0); - } - else{ - applicationController.restart_app(); - } + update_outputlog({ + logdata : 'installed, config.conf updated \r\n ====##CONFIGURED##====', + callback : function(err){ + if(err){ + callback(err,null); + } + else{ + callback(null,"updated conf"); + } + } + }); } }); }; @@ -256,182 +272,130 @@ var configurePeriodic = function(req,res,next,options){ } }; - var createUser = function(userdata,callback){ - if(updatesettings.admin==="true"){ - update_outputlog({ - logdata : 'creating admin user' - }); - User.fastRegisterUser(userdata,callback); - } - else{ - callback(null,"skipping admin user set up"); - } - }; + async.series([ + //write database json + function(callback){ + var dbjson='', + dbjsfile=path.join(process.cwd(),'/content/config/database.js'); + dbjson+='"use strict";\r\n'; + dbjson+='\r\n'; + dbjson+='var mongoose = require("mongoose");\r\n'; + dbjson+='\r\n'; + dbjson+='module.exports = {\r\n'; + dbjson+=' "development":{\r\n'; + dbjson+=' url: "'+updatesettings.mongoconnectionurl+'",\r\n'; + dbjson+=' mongoose: mongoose,\r\n'; + dbjson+=' mongooptions:{}\r\n'; + dbjson+=' },\r\n'; + dbjson+=' "production":{\r\n'; + dbjson+=' url: "'+updatesettings.mongoconnectionurl+'",\r\n'; + dbjson+=' mongoose: mongoose,\r\n'; + dbjson+=' mongooptions:{}\r\n'; + dbjson+=' }\r\n'; + dbjson+='};\r\n'; - if(updatesettings.admin==="true"){ - // console.log("install admin"); - asyncTasks.installMailer = function(callback){ - update_outputlog({ - logdata : 'installing mailer extension' - }); - applicationController.async_run_cmd( - 'node', - ['index.js','--cli','--controller','extension','--install','true','--name','typesettin/periodicjs.ext.mailer','--version','latest'], - function(consoleoutput){ - update_outputlog({ - logdata : consoleoutput - }); - }, - callback - ); - // node index.js --cli --controller extension --install true --name "typesettin/periodicjs.ext.install" --version latest - }; - asyncTasks.installLogin = function(callback){ - update_outputlog({ - logdata : 'installing login extension' - }); - applicationController.async_run_cmd( - 'node', - ['index.js','--cli','--controller','extension','--install','true','--name','typesettin/periodicjs.ext.login','--version','latest'], - function(consoleoutput){ - update_outputlog({ - logdata : consoleoutput - }); - }, - callback - ); - // node index.js --cli --controller extension --install true --name "typesettin/periodicjs.ext.install" --version latest - }; - asyncTasks.installAdmin = function(callback){ - update_outputlog({ - logdata : 'installing admin extension' - }); - applicationController.async_run_cmd( - 'node', - ['index.js','--cli','--controller','extension','--install','true','--name','typesettin/periodicjs.ext.admin','--version','latest'], - function(consoleoutput){ - update_outputlog({ - logdata : consoleoutput - }); - }, - callback - ); - // node index.js --cli --controller extension --install true --name "typesettin/periodicjs.ext.install" --version latest - }; - asyncTasks.installDbseed = function(callback){ - update_outputlog({ - logdata : 'installing dbseed extension' - }); - applicationController.async_run_cmd( - 'node', - ['index.js','--cli','--controller','extension','--install','true','--name','typesettin/periodicjs.ext.dbseed','--version','latest'], - function(consoleoutput){ - update_outputlog({ - logdata : consoleoutput - }); - }, - callback - ); - // node index.js --cli --controller extension --install true --name "typesettin/periodicjs.ext.install" --version latest - // node index.js --cli --extension seed --task sampledata - }; - asyncTasks.installThemeBootstrap = function(callback){ - update_outputlog({ - logdata : 'installing theme: bootstrap' - }); - applicationController.async_run_cmd( - 'node', - ['index.js','--cli','--controller','theme','--install','true','--name','typesettin/periodicjs.theme.bootstrap','--version','latest'], - // ['index.js --cli --controller theme --install true --name "typesettin/periodicjs.theme.'+updatesettings.theme+'" --version latest'], - function(consoleoutput){ - update_outputlog({ - logdata : consoleoutput - }); - }, - callback - ); - // node index.js --cli --controller theme --install true --name "typesettin/periodicjs.theme.bootstrap" --version latest - }; - asyncTasks.installThemeMinimal = function(callback){ - update_outputlog({ - logdata : 'installing theme: minimal' + // logger.silly("restartfile",restartfile); + fs.outputFile(dbjsfile,dbjson,function(err){ + if(err){ + callback(err,null); + } + else{ + callback(null,"updated database.json"); + } }); - applicationController.async_run_cmd( - 'node', - ['index.js','--cli','--controller','theme','--install','true','--name','typesettin/periodicjs.theme.minimal','--version','latest'], - // ['index.js --cli --controller theme --install true --name "typesettin/periodicjs.theme.'+updatesettings.theme+'" --version latest'], - function(consoleoutput){ - update_outputlog({ - logdata : consoleoutput - }); - }, - callback - ); - // node index.js --cli --controller theme --install true --name "typesettin/periodicjs.theme.minimal" --version latest - }; - } - - var writeDatabaseJson = function(callback){ - var dbjson='', - dbjsfile=path.join(process.cwd(),'/content/config/database.js'); - dbjson+='"use strict";\r\n'; - dbjson+='\r\n'; - dbjson+='var mongoose = require("mongoose");\r\n'; - dbjson+='\r\n'; - dbjson+='module.exports = {\r\n'; - dbjson+=' "development":{\r\n'; - dbjson+=' url: "'+updatesettings.mongoconnectionurl+'",\r\n'; - dbjson+=' mongoose: mongoose,\r\n'; - dbjson+=' mongooptions:{}\r\n'; - dbjson+=' },\r\n'; - dbjson+=' "production":{\r\n'; - dbjson+=' url: "'+updatesettings.mongoconnectionurl+'",\r\n'; - dbjson+=' mongoose: mongoose,\r\n'; - dbjson+=' mongooptions:{}\r\n'; - dbjson+=' }\r\n'; - dbjson+='};\r\n'; - - // logger.silly("restartfile",restartfile); - fs.outputFile(dbjsfile,dbjson,function(err){ - if(err){ - callback(err,null); + }, + //create user data + function(callback){ + if(updatesettings.admin==="true"){ + update_outputlog({ + logdata : 'creating admin user' + }); + User.fastRegisterUser(userdata,callback); } else{ - callback(null,"updated database.json"); + callback(null,"skipping admin user set up"); } - }); - }; - - var load_seeddata = function (callback) { - if(updatesettings.admin==="true"){ - update_outputlog({ - logdata : 'seeding database' - }); - applicationController.async_run_cmd( - 'node', - ['index.js','--cli','--extension','dbseed','--task','sampledata'], - function(consoleoutput){ - update_outputlog({ - logdata : consoleoutput - }); - }, - function(err,data){ + }, + function(callback){ + if(updatesettings.admin==="true"){ + // console.log("install admin"); + // asyncTasks.installMailer = ; + // asyncTasks.installLogin = ; + // asyncTasks.installAdmin = ; + // asyncTasks.installDbseed = ; + async.parallel([ + function(callback){ + update_outputlog({ + logdata : 'installing admin extension' + }); + installExtensionDependencies('periodicjs.ext.admin',callback); + // node index.js --cli --controller extension --install true --name "typesettin/periodicjs.ext.install" --version latest + }, + function(callback){ + update_outputlog({ + logdata : 'installing mailer extension' + }); + installExtensionDependencies('periodicjs.ext.mailer',callback); + }, + function(callback){ + update_outputlog({ + logdata : 'installing login extension' + }); + installExtensionDependencies('periodicjs.ext.login',callback); + // node index.js --cli --controller extension --install true --name "typesettin/periodicjs.ext.install" --version latest + } + ], + function(err,results){ if(err){ callback(err,null); } else{ - callback(null,data); + // console.log("results"); + callback(null,results); } - } - ); - } - else{ - callback(null,"skipping seeding database"); + }); + } + else{ + callback(null,"skipping extension install for admin"); + } + }, + function(callback){ + updateExtensionConf(callback); + }, + function(callback){ + if(updatesettings.admin==="true"){ + update_outputlog({ + logdata : 'seeding database' + }); + applicationController.async_run_cmd( + 'node', + ['index.js','--cli','--extension','dbseed','--task','sampledata'], + function(consoleoutput){ + update_outputlog({ + logdata : consoleoutput + }); + }, + function(err,data){ + if(err){ + callback(err,null); + } + else{ + callback(null,data); + } + } + ); + } + else{ + callback(null,"skipping seeding database"); + } + // node index.js --cli --extension seed --task sampledata + }, + function(callback){ + writeConfJson(callback); } - // node index.js --cli --extension seed --task sampledata - }; - - writeDatabaseJson(function(err,dbupdatestatus){ + ], + //final result + function(err,results){ if(err){ errorlog_outputlog({ logdata : err.message, @@ -439,59 +403,23 @@ var configurePeriodic = function(req,res,next,options){ }); } else{ - update_outputlog({ - logdata : dbupdatestatus - }); - createUser(userdata,function(err,newuserdata){ - if(err){ - errorlog_outputlog({ - logdata : err.message, - cli : options.cli - }); - } - else{ - update_outputlog({ - logdata : newuserdata - }); - async.parallel( - asyncTasks, - function(err,results){ - if(err){ - errorlog_outputlog({ - logdata : err.message, - cli : options.cli - }); - } - else{ - console.log(results); - updateExtensionConf(function(err,updatestatus){ - if(err){ - errorlog_outputlog({ - logdata : err.message, - cli : options.cli - }); - } - else{ - load_seeddata(function(err,seedresult){ - if(err){ - errorlog_outputlog({ - logdata : err.message, - cli : options.cli - }); - } - else{ - writeConfJson(); - } - }); - } - }); - // applicationController.restart_app(); - } - }); - } - }); + if(options.cli){ + logger.info('installed, config.conf updated \r\n ====##CONFIGURED##===='); + process.exit(0); + } + else{ + applicationController.restart_app(); + } } }); + + + // var createUser = + + // var writeDatabaseJson = + + // var load_seeddata = + }; var testmongoconfig = function(req,res,next,options){ diff --git a/content/extensions/node_modules/periodicjs.ext.login/package.json b/content/extensions/node_modules/periodicjs.ext.login/package.json index 20332b20..1d709f38 100644 --- a/content/extensions/node_modules/periodicjs.ext.login/package.json +++ b/content/extensions/node_modules/periodicjs.ext.login/package.json @@ -21,7 +21,7 @@ "passport-local": "1.0.0", "passport-facebook": "1.0.3", "passport-twitter": "1.0.2", - "passport-google": "0.3.0", + "passport-google": "0.3.0" }, "devDependencies": { "chai": "1.5.0", diff --git a/content/extensions/restart.json b/content/extensions/restart.json index 0b9a0238..f34f20f0 100644 --- a/content/extensions/restart.json +++ b/content/extensions/restart.json @@ -1,2 +1,2 @@ -restart log Mon Jul 14 2014 21:42:24 GMT-0400 (EDT)- +restart log Tue Jul 15 2014 02:23:46 GMT-0400 (EDT)- \ No newline at end of file