mirror of https://github.com/lukechilds/Agama.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
5.5 KiB
209 lines
5.5 KiB
var app = require('http').createServer(handler)
|
|
var io = require('socket.io')(app);
|
|
var fs = require('fs');
|
|
var request = require('request');
|
|
var progress = require('request-progress');
|
|
const path = require('path')
|
|
const url = require('url')
|
|
const os = require('os')
|
|
const sha256 = require('sha256')
|
|
const crypto = require('crypto')
|
|
Promise = require('bluebird');
|
|
|
|
app.listen(3000);
|
|
|
|
function handler (req, res) {
|
|
fs.readFile(__dirname + '/index.html',
|
|
function (err, data) {
|
|
if (err) {
|
|
res.writeHead(500);
|
|
return res.end('Error loading index.html');
|
|
}
|
|
|
|
res.writeHead(200);
|
|
res.end(data);
|
|
});
|
|
}
|
|
|
|
if (os.platform() === 'darwin') {
|
|
var PARAMS_DIR = process.env.HOME + '/Library/Application Support/ZcashParams'
|
|
}
|
|
if (os.platform() === 'linux') {
|
|
var PARAMS_DIR = process.env.HOME + '/.zcash-params'
|
|
}
|
|
|
|
|
|
//PARAMS_DIR="$HOME/Library/Application Support/ZcashParams"
|
|
|
|
var SPROUT_FILES_DATA = [{"file":"sprout-proving.key","hash":"8bc20a7f013b2b58970cddd2e7ea028975c88ae7ceb9259a5344a16bc2c0eef7"},{"file":"sprout-verifying.key","hash":"4bd498dae0aacfd8e98dc306338d017d9c08dd0918ead18172bd0aec2fc5df82"}]
|
|
var SPROUT_DL_URL="https://z.cash/downloads/"
|
|
|
|
//console.log(SPROUT_FILES_DATA);
|
|
|
|
SPROUT_FILES_DATA.forEach(function (value, index) {
|
|
//console.log(index);
|
|
//console.log(value);
|
|
//console.log(value.file);
|
|
//console.log(value.hash);
|
|
|
|
fs.exists(value.file, function(exists) {
|
|
if (exists) {
|
|
console.log(value.file + ' already exists at location.');
|
|
var tmphash
|
|
|
|
var fd = fs.createReadStream(value.file);
|
|
var hash = crypto.createHash('sha256')
|
|
hash.setEncoding('hex');
|
|
|
|
fd.on('end', function() {
|
|
hash.end();
|
|
console.log('hash is: ')
|
|
console.log(hash.read()); // the desired sha1sum
|
|
console.log(value.hash)
|
|
tmphash = hash.read();
|
|
if (hash.read() === value.hash) {
|
|
console.log('File SHA256 sum matches.')
|
|
} else {
|
|
console.log('File SHA256 sum does not match.')
|
|
}
|
|
});
|
|
// read all file and pipe it (write it) to the hash object
|
|
fd.pipe(hash);
|
|
|
|
} else {
|
|
var DLFile = function() {
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
|
|
console.log('file not there.');
|
|
|
|
progress(request(SPROUT_DL_URL+value.file), {})
|
|
.on('progress', function (state) {
|
|
console.log('progress', state);
|
|
})
|
|
.on('error', function (err) {
|
|
console.log(err);
|
|
})
|
|
.on('end', function () {
|
|
// Do something after request finishes
|
|
console.log('download finished.')
|
|
var result = 'File ==> ' + value.file + ': DOWNLOADED'
|
|
})
|
|
.pipe(fs.createWriteStream(value.file));
|
|
|
|
console.log(result)
|
|
resolve(result);
|
|
})
|
|
}
|
|
|
|
|
|
var CheckFileSHA = function() {
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
var fd = fs.createReadStream(value.file);
|
|
var hash = crypto.createHash('sha256')
|
|
hash.setEncoding('hex');
|
|
|
|
fd.on('end', function() {
|
|
hash.end();
|
|
console.log('hash is: ')
|
|
console.log(hash.read()); // the desired sha1sum
|
|
console.log(value.hash)
|
|
if (hash.read() === value.hash) {
|
|
console.log('File SHA256 sum matches.')
|
|
} else {
|
|
console.log('File SHA256 sum does not match.')
|
|
}
|
|
});
|
|
// read all file and pipe it (write it) to the hash object
|
|
fd.pipe(hash);
|
|
|
|
var result = 'SHA256 SUM Check: DONE'
|
|
|
|
console.log(result)
|
|
resolve(result);
|
|
})
|
|
}
|
|
|
|
|
|
DLFile()
|
|
.then(function(result) {
|
|
return CheckFileSHA();
|
|
})
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
|
|
function CheckSHASum(file, hashstr) {
|
|
console.log(hashstr)
|
|
var shasum
|
|
|
|
// the file you want to get the hash
|
|
|
|
|
|
if (shasum === hashstr ) {
|
|
return true
|
|
} else return false
|
|
}
|
|
|
|
|
|
/*var CheckFileExists = function() {
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
|
|
if (path.existsSync('foo.txt')) {}
|
|
var result = 'Connecting To Pm2: done'
|
|
|
|
console.log(result)
|
|
resolve(result);
|
|
})
|
|
}
|
|
|
|
var DLFile = function() {
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
var result = 'Killing Pm2: done'
|
|
|
|
setTimeout(function() {
|
|
console.log(result)
|
|
resolve(result);
|
|
}, 2000)
|
|
})
|
|
}
|
|
|
|
var CheckSHASum = function() {
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
var result = 'Hiding Main Window: done'
|
|
|
|
console.log(result)
|
|
resolve(result);
|
|
})
|
|
}
|
|
|
|
var MoveFile = function() {
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
var result = 'Quiting App: done'
|
|
|
|
console.log(result)
|
|
resolve(result);
|
|
})
|
|
}
|
|
|
|
ConnectToPm2()
|
|
.then(function(result) {
|
|
return KillPm2();
|
|
})
|
|
.then(HideMainWindow)
|
|
.then(QuitApp)
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|