auto update

This commit is contained in:
Mark Nadal 2023-04-28 02:26:16 -07:00
parent ca0e7e35ae
commit 8b1f055cd1
3 changed files with 50 additions and 43 deletions

View File

@ -36,13 +36,13 @@ git clone https://github.com/isaacs/nave.git
mkdir node_modules mkdir node_modules
git clone https://github.com/amark/gun.git git clone https://github.com/amark/gun.git
cd gun cd gun
git checkout .
git pull git pull
git checkout master git checkout master
git checkout $VERSION git checkout $VERSION
git pull git pull
npm install . npm install .
service relay stop
cp ./examples/relay.service /lib/systemd/system/relay.service cp ./examples/relay.service /lib/systemd/system/relay.service
echo $PWD >> /lib/systemd/system/relay.service echo $PWD >> /lib/systemd/system/relay.service
echo "fs.file-max = 999999" >> /etc/sysctl.conf echo "fs.file-max = 999999" >> /etc/sysctl.conf
@ -50,4 +50,4 @@ ulimit -u unlimited
sysctl -p /etc/sysctl.conf sysctl -p /etc/sysctl.conf
systemctl daemon-reload systemctl daemon-reload
systemctl enable relay systemctl enable relay
service relay start systemctl restart relay

View File

@ -205,47 +205,7 @@ function start(root){
},1000); },1000);
}()); }());
;(function(){ setTimeout(function(){ require('./service')(root) },9);
var cmd = {};
mesh.hear['service'] = function(msg, peer){
if(!require('fs').existsSync('/lib/systemd/system/relay.service')){
mesh.say({dam: '!', err: "Not serviced."});
return;
}
try{ (cmd[msg.try]||cmd.any)(msg, peer); }catch(err){ mesh.say({dam: '!', err: "service error: "+err}) }
}
cmd.https = function(msg, peer){ var run, log;
if(!(run = require('child_process').exec)){ return }
if(!msg.email || !msg.domain){
mesh.say({dam: '!', err: 'Domain/email missing, use `location.hostname`!'});
return;
}
if(require('fs').existsSync(require('os').homedir()+'/cert.pem')){
mesh.say({dam: '!', err: 'Cert already exists.'});
return;
}
var path = require('path').resolve(__dirname, '../examples');
require('fs').writeFileSync(path+'/../email', msg.email);
run("bash "+path+"/https.sh", {env: {'EMAIL': msg.email, 'WEB': path, 'DOMAIN': msg.domain}}, function(e, out, err){
log = "|"+e+"|"+out+"|"+err;
mesh.say({dam: '!', log: ''+log}, peer);
setTimeout(function(){ process.exit() },999);
});
}
cmd.update = function(msg, peer){ var run, log, pass;
try{ pass = (''+require('fs').readFileSync(require('os').homedir()+'/pass')).trim() }catch(e){}
if(!pass || (msg.pass||'').trim() != pass){ return }
if(!(run = require('child_process').exec)){ return }
var path = require('path').resolve(__dirname, '../examples');
run("bash "+path+"/install.sh", {env: {VERSION: msg.version||''}}, function(e, out, err){
log = e+"|"+out+"|"+err;
mesh.say({dam: '!', log: ''+log}, peer);
setTimeout(function(){ process.exit() },999);
});
}
cmd.any = function(){};
}());
;(function(){ // THIS IS THE MOB MODULE; ;(function(){ // THIS IS THE MOB MODULE;
//return; // WORK IN PROGRESS, TEST FINALIZED, NEED TO MAKE STABLE. //return; // WORK IN PROGRESS, TEST FINALIZED, NEED TO MAKE STABLE.

47
lib/service.js Normal file
View File

@ -0,0 +1,47 @@
module.exports = function(root){
var mesh = root.opt.mesh, cmd = {}, run = require('child_process').exec, fs = require('fs'), home = require('os').homedir(), examp = require('path').resolve(__dirname, '../examples');
mesh.hear['service'] = function(msg, peer){
if(!fs.existsSync('/lib/systemd/system/relay.service')){
mesh.say({dam: '!', err: "Not serviced."});
return;
}
try{ (cmd[msg.try]||cmd.any)(msg, peer); }catch(err){ mesh.say({dam: '!', err: "service error: "+err}) }
}
cmd.https = function(msg, peer){ var run, log;
if(!msg.email || !msg.domain){
mesh.say({dam: '!', err: 'Domain/email missing, use `location.hostname`!'});
return;
}
if(fs.existsSync(home+'/cert.pem')){
mesh.say({dam: '!', err: 'Cert already exists.'});
return;
}
fs.writeFile(examp+'/../email', msg.email, function(){});
run("bash "+examp+"/https.sh", {env: {'EMAIL': msg.email, 'WEB': examp, 'DOMAIN': msg.domain}}, function(e, out, err){
log = "|"+e+"|"+out+"|"+err;
mesh.say({dam: '!', log: ''+log}, peer);
setTimeout(function(){ process.exit() },999);
});
}
cmd.update = function(msg, peer){ var run, log, pass;
try{ pass = (''+fs.readFileSync(home+'/pass')).trim() }catch(e){}
if(!pass || (msg.pass||'').trim() != pass){ return }
fs.writeFile(examp+'/../updated', +new Date+'', function(){});
run("bash "+examp+"/install.sh", {env: {VERSION: msg.version||''}}, function(e, out, err){
log = e+"|"+out+"|"+err;
mesh.say({dam: '!', log: ''+log}, peer);
setTimeout(function(){ process.exit() },999);
});
}
;(function update(){ var last;
if(!fs.existsSync(home+'/cert.pem')){ return }
setTimeout(update, 1000*60*60*24);
last = root.stats.stay.updated || 0;
if(+new Date - last < 1000*60*60*24*15){ return }
root.stats.stay.updated = +new Date;
run("bash "+examp+"/install.sh", {}, function(){});
}());
cmd.any = function(){};
};