Thursday, January 24, 2019

Git commit with specific date

Very interesting Git option I just found: --date. When making a commit, you can specify the date manually. However, if you make a new commit with a past date, it will still be shown as the last commit, even with a date prior to the previous commit.

A new commit at January 1, 2019, 12:00, specifying timezone UTC-2:

git commit -m "Comment" --date="2019-01-01T12:00:00-02:00"

Changing the date of the last commit, using UTC+0 as timezone. Will be prompted to write the comment:

git commit --amend --date="2019-01-01T12:00:00Z"

This goes hand-in-hand with this current date trick.

Friday, January 11, 2019

Node.js script to kill a JBoss instance

I’ve been dealing with consecutive JBoss restarts lately at work, and I needed a quick way to kill a running JBoss server instance. First I wrote a PHP script, but then I translated it to JavaScript, so it could run upon Node.js, which I’m using a lot lately.

I’m using it a lot.

Tuesday, January 8, 2019

Reading a file line by line in JavaScript and Node.js

While writing a small Node.js utility in JavaScript, I needed to read a text file from disk, line by line, into a string array. I wrote a small utility function to this task, which is async, returning a Promise.

'use strict';
const fs = require('fs');
const readline = require('readline');
function readLines(fileName) {
return new Promise((resolve, reject) => {
if (!fs.existsSync(fileName)) {
return reject('File not found: ' + fileName);
}
let rl = readline.createInterface({
input: fs.createReadStream(fileName),
console: false
});
let lines = [];
rl.on('line', line => lines.push(line));
rl.on('close', () => resolve(lines));
rl.on('error', err => reject(err));
});
}
module.exports = readLines;
view raw readLines.js hosted with ❤ by GitHub

Usage is pretty straightforward:

const readLines = require('./readLines');

async function foo() {
  const lines = await readLines('myFile.txt');
  console.log(lines.length);
}