diff --git a/create.sh b/create.sh index ecf928c..6ee54ef 100644 --- a/create.sh +++ b/create.sh @@ -43,4 +43,4 @@ echo "" >> /etc/apache2/sites-enabled/$name.conf service apache2 restart -# copy and make data base +exit 0 diff --git a/delete.sh b/delete.sh new file mode 100644 index 0000000..aa0b6c1 --- /dev/null +++ b/delete.sh @@ -0,0 +1,10 @@ +#!/bin/bash +name="$1" +sshURL="$2" + +rm -rf /var/www/gitwrapper/$name +rm /etc/apache2/sites-enabled/$name.conf + +service apache2 reload + +exit 0 diff --git a/routes/index.js b/routes/index.js index 2ab2562..b2d2695 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,19 +1,12 @@ var express = require('express'); var router = express.Router(); var exec = require('child_process').exec; +var fs = require('fs'); +var fs = fs.existsSync(dir) /* 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 = { @@ -23,15 +16,14 @@ var calls = { }); }, update: function(name, sshURL){ - // git pull - // run migrations - // install req file - // reload apache + return exec('bash update.sh '+name+' '+sshURL, function(err, stdout, stderr){ + return res.json({ title: 'Express' }); + }); }, delete: function(name){ - // delete dir - // remove apache file - // reload apache + return exec('bash delete.sh '+name+' '+sshURL, function(err, stdout, stderr){ + return res.json({ title: 'Express' }); + }); } }; @@ -43,6 +35,7 @@ router.all('/', function(req, res, next) { var name = req.body.ref.replace('refs/heads/', ''); var sshURL = req.body.repository.ssh_url; + if(call === 'update' && !fs.existsSync('/var/www/gitwrapper/'+name)) call = 'create'; return calls[call](req, res, name, sshURL); }); diff --git a/update.sh b/update.sh new file mode 100644 index 0000000..1d7a247 --- /dev/null +++ b/update.sh @@ -0,0 +1,24 @@ +#!/bin/bash +name="$1" +sshURL="$2" + +eval "$(ssh-agent -s)" +ssh-add /root/.ssh/id_github_rsa +DJANGO_SETTINGS_MODULE=project.settings.prod +export DJANGO_SETTINGS_MODULE=project.settings.prod +cd /var/www/gitwrapper/$name + +source env/bin/activate + +git stash +git pull --force origin $name +pip install -r requirements.txt + +python3 manage.py collectstatic --noinput +python3 manage.py migrate + +chmod 777 . +chmod 777 db.sqlite3 +service apache2 reload + +exit 0