ShakedAp d00e6e04ff Added video streaming and sample file
Added bigbuck.mp4, the sample file
Install nodemon module for streaming
Modified  index.html to contain the video, and changed the title
Modified index.js to add /video dir for the video streaming
2023-06-24 14:00:31 +03:00

101 lines
2.4 KiB
JavaScript

module.exports = version;
module.exports.pin = pin;
var fs = require('fs');
var path = require('path');
var exec = require('child_process').exec;
var root = null;
function pin() {
return version().then(function (v) {
version.pinned = v;
});
}
function version(callback) {
// first find the package.json as this will be our root
var promise = findPackage(path.dirname(module.parent.filename))
.then(function (dir) {
// now try to load the package
var v = require(path.resolve(dir, 'package.json')).version;
if (v && v !== '0.0.0-development') {
return v;
}
root = dir;
// else we're in development, give the commit out
// get the last commit and whether the working dir is dirty
var promises = [
branch().catch(function () { return 'master'; }),
commit().catch(function () { return '<none>'; }),
dirty().catch(function () { return 0; }),
];
// use the cached result as the export
return Promise.all(promises).then(function (res) {
var branch = res[0];
var commit = res[1];
var dirtyCount = parseInt(res[2], 10);
var curr = branch + ': ' + commit;
if (dirtyCount !== 0) {
curr += ' (' + dirtyCount + ' dirty files)';
}
return curr;
});
}).catch(function (error) {
console.log(error.stack);
throw error;
});
if (callback) {
promise.then(function (res) {
callback(null, res);
}, callback);
}
return promise;
}
function findPackage(dir) {
if (dir === '/') {
return Promise.reject(new Error('package not found'));
}
return new Promise(function (resolve) {
fs.stat(path.resolve(dir, 'package.json'), function (error, exists) {
if (error || !exists) {
return resolve(findPackage(path.resolve(dir, '..')));
}
resolve(dir);
});
});
}
function command(cmd) {
return new Promise(function (resolve, reject) {
exec(cmd, { cwd: root }, function (err, stdout, stderr) {
var error = stderr.trim();
if (error) {
return reject(new Error(error));
}
resolve(stdout.split('\n').join(''));
});
});
}
function commit() {
return command('git rev-parse HEAD');
}
function branch() {
return command('git rev-parse --abbrev-ref HEAD');
}
function dirty() {
return command('expr $(git status --porcelain 2>/dev/null| ' +
'egrep "^(M| M)" | wc -l)');
}