drop md5sum dependency, depend on node.js script
This commit is contained in:
parent
15ed53d4a7
commit
6df1437cfc
94
scripts/md5sum.js
Executable file
94
scripts/md5sum.js
Executable file
@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
'use strict'
|
||||
|
||||
var crypto = require('crypto');
|
||||
var fs = require('fs');
|
||||
|
||||
var idx = process.argv.indexOf('-c');
|
||||
if (idx > -1) {
|
||||
var validate_file = process.argv[idx+1];
|
||||
if (!process.argv[idx+1]) {
|
||||
console.error('Please pass arg to -c with a path to the data.md5sum file used to validate');
|
||||
process.exit(1);
|
||||
}
|
||||
validate(validate_file);
|
||||
} else {
|
||||
// we are generating checksums for all filenames passed
|
||||
var args = process.argv.slice(2);
|
||||
if (args.length > 0) {
|
||||
generate(args);
|
||||
} else {
|
||||
console.error('Please pass either a list of files to generate an md5sum for or validate with "-c data.md5sum"');
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function md5FileSync (filename) {
|
||||
var BUFFER_SIZE = 8192;
|
||||
var fd = fs.openSync(filename, 'r');
|
||||
var hash = crypto.createHash('md5');
|
||||
var buffer = new Buffer(BUFFER_SIZE);
|
||||
|
||||
try {
|
||||
var bytesRead;
|
||||
|
||||
do {
|
||||
bytesRead = fs.readSync(fd, buffer, 0, BUFFER_SIZE);
|
||||
hash.update(buffer.slice(0, bytesRead));
|
||||
} while (bytesRead === BUFFER_SIZE)
|
||||
} finally {
|
||||
fs.closeSync(fd);
|
||||
}
|
||||
|
||||
return hash.digest('hex');
|
||||
}
|
||||
|
||||
function generate(files) {
|
||||
files.forEach(function(filename) {
|
||||
var md5_actual = md5FileSync(filename);
|
||||
console.log(md5_actual,'',filename);
|
||||
})
|
||||
}
|
||||
|
||||
function validate(validate_file) {
|
||||
|
||||
var sums = {};
|
||||
var lines = fs.readFileSync(validate_file).
|
||||
toString().
|
||||
split('\n').
|
||||
filter(function(line) {
|
||||
return line !== "";
|
||||
});
|
||||
|
||||
var error = 0;
|
||||
|
||||
lines.forEach(function(line) {
|
||||
var parts = line.split(' ');
|
||||
var filename = parts[1];
|
||||
var md5 = parts[0];
|
||||
sums[filename] = md5;
|
||||
var md5_actual = md5FileSync(filename);
|
||||
if (md5_actual !== md5) {
|
||||
error++;
|
||||
console.error(filename + ': FAILED')
|
||||
} else {
|
||||
console.log(filename + ': OK');
|
||||
}
|
||||
})
|
||||
|
||||
if (error > 0) {
|
||||
console.error('ms5sum.js WARNING: 1 computed checksum did NOT match');
|
||||
console.error('\nExpected:')
|
||||
lines.forEach(function(line) {
|
||||
var parts = line.split(' ');
|
||||
var filename = parts[1];
|
||||
var md5 = parts[0];
|
||||
console.log(md5 + ' ' + filename);
|
||||
})
|
||||
process.exit(1);
|
||||
} else {
|
||||
process.exit(0);
|
||||
}
|
||||
}
|
@ -8,6 +8,7 @@ OSRM_EXTRACT:=$(OSRM_BUILD_DIR)/osrm-extract
|
||||
OSRM_CONTRACT:=$(OSRM_BUILD_DIR)/osrm-contract
|
||||
OSRM_ROUTED:=$(OSRM_BUILD_DIR)/osrm-routed
|
||||
POLY2REQ:=$(SCRIPT_ROOT)/poly2req.js
|
||||
MD5SUM:=$(SCRIPT_ROOT)/md5sum.js
|
||||
TIMER:=$(SCRIPT_ROOT)/timer.sh
|
||||
PROFILE:=$(PROFILE_ROOT)/car.lua
|
||||
|
||||
@ -24,7 +25,7 @@ $(DATA_NAME).poly:
|
||||
|
||||
$(DATA_NAME).osrm: $(DATA_NAME).osm.pbf $(DATA_NAME).poly $(PROFILE) $(OSRM_EXTRACT)
|
||||
@echo "Verifiyng data file integrity..."
|
||||
md5sum -c data.md5sum
|
||||
$(MD5SUM) -c data.md5sum
|
||||
@echo "Running osrm-extract..."
|
||||
$(TIMER) "osrm-extract" $(OSRM_EXTRACT) $(DATA_NAME).osm.pbf -p $(PROFILE)
|
||||
|
||||
@ -49,6 +50,6 @@ benchmark: $(DATA_NAME).requests osrm-routed.pid
|
||||
@echo "****************"
|
||||
|
||||
checksum:
|
||||
md5sum $(DATA_NAME).osm.pbf $(DATA_NAME).poly > data.md5sum
|
||||
$(MD5SUM) $(DATA_NAME).osm.pbf $(DATA_NAME).poly > data.md5sum
|
||||
|
||||
.PHONY: clean checksum benchmark
|
||||
|
Loading…
Reference in New Issue
Block a user