From b54d5533c99c0f262d1eb3779dabffc7ada646ab Mon Sep 17 00:00:00 2001 From: William Mantly Date: Thu, 16 Jun 2016 18:37:44 -0400 Subject: [PATCH] first --- bin/www | 2 +- routes/create.sh | 38 ++++++++++++++++++++++++++++++++++ routes/index.js | 54 +++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 routes/create.sh diff --git a/bin/www b/bin/www index af073dd..1a37480 100755 --- a/bin/www +++ b/bin/www @@ -12,7 +12,7 @@ var http = require('http'); * Get port from environment and store in Express. */ -var port = normalizePort(process.env.PORT || '3180'); +var port = normalizePort(process.env.PORT || '3000'); app.set('port', port); /** diff --git a/routes/create.sh b/routes/create.sh new file mode 100644 index 0000000..b9e3798 --- /dev/null +++ b/routes/create.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +name="$1" +sshURL="$2" + +eval "$(ssh-agent -s)" +ssh-add /root/.ssh/github_rsa +cd /var/www/gitwrapper +mkdir $name +cd $name + +git clone $sshURL . +git checkout $name +virtual env +source env/bin/activate +pip3 install -r /var/www/gitwrapper/requirements.txt > /var/www/pipinstall.log +DJANGO_SETTINGS_MODULE=project.settings.prod +export DJANGO_SETTINGS_MODULE=project.settings.prod +cp /var/www/local_settings.py project/ +echo "BRANCH = /"$name/"" >> project/local_settings.py + +python3 manage.py loaddata /var/www/django.dump +python3 manage.py collectstatic --noinput +python3 manage.py migrate +chmod 777 . +chmod 777 db.sqlite3 + +echo '' > /etc/apache2/sites-enabled/runner.conf +echo ' Alias /static /var/www/gitwrapper/$name/staticfiles' > /etc/apache2/sites-enabled/runner.conf +echo ' WSGIDaemonProcess $name python-path=/var/www/gitwrapper/$name:/var/www/gitwrapper/$name/env/lib/python3.4/site-packages' >> /etc/apache2/sites-enabled/runner.conf +echo ' WSGIProcessGroup $name' >> /etc/apache2/sites-enabled/runner.conf +echo ' WSGIScriptAlias / /var/www/gitwrapper/$name/project/wsgi.py' >> /etc/apache2/sites-enabled/runner.conf +echo '' >> /etc/apache2/sites-enabled/runner.conf + + +service apache2 restart + +# copy and make data base diff --git a/routes/index.js b/routes/index.js index 8645530..ac059f0 100644 --- a/routes/index.js +++ b/routes/index.js @@ -2,14 +2,62 @@ var express = require('express'); var router = express.Router(); var exec = require('child_process').exec; /* GET home page. */ + +var install_dir = '/var/www/gitwrapper/' + +// var shell = { +// clone: function(name, sshURL, callback){ +// return exec('git clone '+ sshURL + ' '+ install_dir + name, function(err, stdout, stderr){ +// return callback(name, stdout); +// }, +// setUpENV: function(){ + +// } +// }; + + +var calls = { + create: function(name, sshURL){ + exec('git clone '+ sshURL + ' /var/www/gitwrapper/'+ name, function(err, stdout, stderr){ + // set up virtual env + // install req file + // sync db + // run migrations + // write apache file + // reload apache + }); + }, + update: function(name, sshURL){ + // git pull + // run migrations + // install req file + // reload apache + }, + delete: function(name){ + // delete dir + // remove apache file + // reload apache + } + +}; + + router.all('/', function(req, res, next) { - if(req.headers['x-github-event'] === 'push'){ + var event = req.headers['x-github-event']; + var call = (req.body.created && 'create') || (req.body.deleted && 'delete') || 'update'; + + var name = req.body.ref.replace('refs/heads/', ''); + var sshURL = req.body.repository.ssh_url; + exec('pwd', console.log); + console.log('call', call, 'event:', event, 'name:', name, 'sshURL:', sshURL) + // console.log("\n=================\n\n", req.body); +/* if(req.headers['x-github-event'] === 'push'){ if(req.body.ref === "refs/heads/master"){ console.log('time to update master!'); exec('/var/www/gitwrapperdeploy.sh', console.log, console.log); } - } - res.render('index', { title: 'Express' }); + }*/ + res.json({ title: 'Express' }); }); module.exports = router;