mirror of https://github.com/lukechilds/Agama.git
Satinder Grewal
8 years ago
5 changed files with 265 additions and 72 deletions
@ -0,0 +1,85 @@ |
|||
function Iguana_activehandle() { |
|||
var result = []; |
|||
//comment
|
|||
var ajax_data = {"agent":"SuperNET","method":"activehandle"}; |
|||
//console.log(ajax_data);
|
|||
$.ajax({ |
|||
async: false, |
|||
type: 'POST', |
|||
data: JSON.stringify(ajax_data), |
|||
url: 'http://127.0.0.1:7778', |
|||
//dataType: 'text',
|
|||
success: function(data, textStatus, jqXHR) { |
|||
var AjaxOutputData = JSON.parse(data); |
|||
//console.log('== ActiveHandle Data OutPut ==');
|
|||
//console.log(AjaxOutputData);
|
|||
result.push(AjaxOutputData); |
|||
}, |
|||
error: function(xhr, textStatus, error) { |
|||
console.log(xhr.statusText); |
|||
if ( xhr.readyState == 0 ) { |
|||
//Iguana_ServiceUnavailable();
|
|||
result.push('error') |
|||
} |
|||
console.log(textStatus); |
|||
console.log(error); |
|||
} |
|||
}); |
|||
//return 'Executed Iguana_activehandle. Check Iguana_activehandle_output var value.';
|
|||
return result; |
|||
} |
|||
|
|||
function StartIguana() { |
|||
var ajax_data = {"herd":"iguana"}; |
|||
console.log(ajax_data); |
|||
$.ajax({ |
|||
async: false, |
|||
type: 'POST', |
|||
data: JSON.stringify(ajax_data), |
|||
url: 'http://127.0.0.1:17777/shepherd/herd', |
|||
dataType: "xml/html/script/json", // expected format for response
|
|||
contentType: "application/json", // send as JSON
|
|||
success: function(data, textStatus, jqXHR) { |
|||
var AjaxOutputData = JSON.parse(data); |
|||
console.log('== ActiveHandle Data OutPut =='); |
|||
console.log(AjaxOutputData); |
|||
}, |
|||
error: function(xhr, textStatus, error) { |
|||
console.log(xhr.statusText); |
|||
if ( xhr.readyState == 0 ) { |
|||
} |
|||
console.log(textStatus); |
|||
console.log(error); |
|||
} |
|||
}); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
$(document).ready( function() { |
|||
//var check = Iguana_activehandle();
|
|||
//console.log(check[0]) // here I invoke the checking function
|
|||
const remote = require('electron').remote; |
|||
var window = remote.getCurrentWindow(); |
|||
|
|||
StartIguana(); |
|||
|
|||
var portcheck; |
|||
function sartcheck() { |
|||
portcheck = setInterval(function(){ |
|||
var check = Iguana_activehandle(); |
|||
console.log(check[0]) |
|||
if (check[0] !== 'error') { |
|||
stopcheck(); |
|||
window.close(); |
|||
} |
|||
},2000); |
|||
} |
|||
|
|||
function stopcheck() { |
|||
clearInterval(portcheck); |
|||
} |
|||
sartcheck(); |
|||
//setTimeout(function(){ window.close(); }, 15000);
|
|||
}); |
@ -0,0 +1,148 @@ |
|||
const electron = require('electron') |
|||
const app = electron.app |
|||
const BrowserWindow = electron.BrowserWindow |
|||
const path = require('path') |
|||
const url = require('url') |
|||
const os = require('os') |
|||
var fs = require('fs'); |
|||
var fs = require('fs-extra') |
|||
var mkdirp = require('mkdirp'); |
|||
|
|||
var pm2 = require('pm2'); |
|||
|
|||
|
|||
// IGUANA FILES AND CONFIG SETTINGS
|
|||
|
|||
var iguanaConfsDirSrc = path.join(__dirname, '../assets/deps/confs'); |
|||
|
|||
// SETTING OS DIR TO RUN IGUANA FROM
|
|||
// SETTING APP ICON FOR LINUX AND WINDOWS
|
|||
if (os.platform() === 'darwin') { |
|||
var iguanaBin = path.join(__dirname, '../assets/bin/osx/iguana'); |
|||
var iguanaDir = process.env.HOME + '/Library/Application Support/iguana'; |
|||
var iguanaConfsDir = iguanaDir + '/confs'; |
|||
} |
|||
if (os.platform() === 'linux') { |
|||
var iguanaBin = path.join(__dirname, '../assets/bin/linux64/iguana'); |
|||
var iguanaDir = process.env.HOME + '/.iguana' |
|||
var iguanaConfsDir = iguanaDir + '/confs'; |
|||
var iguanaIcon = path.join(__dirname, '/assets/icons/iguana_app_icon_png/128x128.png') |
|||
} |
|||
if (os.platform() === 'win32') { |
|||
var iguanaBin = path.join(__dirname, '../assets/bin/win64/iguana.exe'); iguanaBin = path.normalize(iguanaBin); |
|||
var iguanaDir = process.env.APPDATA + '/iguana'; iguanaDir = path.normalize(iguanaDir) |
|||
var iguanaConfsDir = process.env.APPDATA + '/iguana/confs'; iguanaConfsDir = path.normalize(iguanaConfsDir) |
|||
var iguanaIcon = path.join(__dirname, '/assets/icons/iguana_app_icon.ico') |
|||
iguanaConfsDirSrc = path.normalize(iguanaConfsDirSrc); |
|||
} |
|||
|
|||
console.log(iguanaDir); |
|||
console.log(iguanaBin); |
|||
|
|||
// END IGUANA FILES AND CONFIG SETTINGS
|
|||
|
|||
|
|||
var express = require('express'); |
|||
var shepherd = express.Router(); |
|||
|
|||
shepherd.get('/', function(req, res, next) { |
|||
res.send('Hello World!') |
|||
}) |
|||
|
|||
|
|||
shepherd.post('/herd', function(req, res) { |
|||
console.log('======= req.body ======='); |
|||
//console.log(req);
|
|||
console.log(req.body); |
|||
//console.log(req.body.herd);
|
|||
//console.log(req.body.options);
|
|||
|
|||
herder(req.body.herd, req.body.options); |
|||
|
|||
res.end('{"msg": "success","result": "result"}'); |
|||
|
|||
}); |
|||
|
|||
|
|||
shepherd.post('/slay', function(req, res) { |
|||
console.log('======= req.body ======='); |
|||
//console.log(req);
|
|||
console.log(req.body); |
|||
//console.log(req.body.slay);
|
|||
|
|||
slayer(req.body.slay); |
|||
|
|||
res.end('{"msg": "success","result": "result"}'); |
|||
|
|||
}); |
|||
|
|||
|
|||
function herder(flock, options) { |
|||
//console.log(flock);
|
|||
//console.log(options);
|
|||
|
|||
if (options == undefined) { options = 'none'; console.log('it is undefined'); } |
|||
|
|||
if (flock === 'iguana') { |
|||
console.log('iguana flock selected...'); |
|||
console.log('selected options: '+options); |
|||
|
|||
// MAKE SURE IGUANA DIR IS THERE FOR USER
|
|||
mkdirp(iguanaDir, function (err) { |
|||
if (err) |
|||
console.error(err) |
|||
else |
|||
fs.readdir(iguanaDir, (err, files) => { |
|||
files.forEach(file => { |
|||
//console.log(file);
|
|||
}); |
|||
}) |
|||
}); |
|||
|
|||
// COPY CONFS DIR WITH PEERS FILE TO IGUANA DIR, AND KEEP IT IN SYNC
|
|||
fs.copy(iguanaConfsDirSrc, iguanaConfsDir, function (err) { |
|||
if (err) return console.error(err) |
|||
console.log('confs files copied successfully at: '+ iguanaConfsDir ) |
|||
}) |
|||
|
|||
|
|||
pm2.connect(function(err) { //start up pm2 god
|
|||
if (err) { |
|||
console.error(err); |
|||
process.exit(2); |
|||
} |
|||
|
|||
pm2.start({ |
|||
script : iguanaBin, // path to binary
|
|||
name: 'IGUANA', |
|||
exec_mode : 'fork', |
|||
cwd: iguanaDir, //set correct iguana directory
|
|||
}, function(err, apps) { |
|||
pm2.disconnect(); // Disconnect from PM2
|
|||
if (err) throw err |
|||
}); |
|||
}); |
|||
} |
|||
|
|||
if (flock === 'komodod') { |
|||
console.log('komodod flock selected...'); |
|||
console.log('selected options: '+options); |
|||
} |
|||
} |
|||
|
|||
|
|||
function slayer(flock) { |
|||
console.log(flock); |
|||
|
|||
pm2.delete('IGUANA', function(err, ret) { |
|||
should(err).be.null() |
|||
pm2.list(function(err, ret) { |
|||
should(err).be.null() |
|||
ret.length.should.eql(8); |
|||
done(); |
|||
}); |
|||
}); |
|||
} |
|||
|
|||
|
|||
module.exports = shepherd; |
Loading…
Reference in new issue