From 30d40a44e61e5ce57fafa4e3890fb2f48aa42a29 Mon Sep 17 00:00:00 2001 From: Ilya Anisimov Date: Fri, 8 Dec 2023 16:38:45 +0300 Subject: [PATCH] add index.js --- index.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 index.js diff --git a/index.js b/index.js new file mode 100644 index 0000000..d229803 --- /dev/null +++ b/index.js @@ -0,0 +1,47 @@ +var fs = require('fs'); +var Transform = require('stream').Transform; +var Vinyl = require('vinyl'); + +module.exports = function() { + return new Transform({ + objectMode: true, + + transform(file, enc, cb) { + var dir = file.dirname; + var hash = file.contents.toString().trim(); + + var tags = fs.readdirSync(dir + '/refs/tags', 'utf8').reverse(); + var ver = ''; + + if (hash.slice(0, 5) === 'ref: ') { + hash = fs.readFileSync(dir + '/' + hash.slice(5).trim(), 'utf8').trim(); + } + + tags.some((tag, i) => { + var h = fs.readFileSync(dir + '/refs/tags/' + tag, 'utf8').trim(); + + if (h === hash) { + ver = tag; + } + + return ver || i > 50; + }); + + this.push( + new Vinyl({ + path: 'revision.txt', + contents: Buffer.from(hash), + }) + ); + + this.push( + new Vinyl({ + path: 'version.txt', + contents: Buffer.from(ver), + }) + ); + + cb(); + }, + }); +};