Skip to content

Instantly share code, notes, and snippets.

@minho-comcom-ai
Created July 29, 2021 07:41
Show Gist options
  • Select an option

  • Save minho-comcom-ai/c808462177ee239d02fbca7d33d7f21b to your computer and use it in GitHub Desktop.

Select an option

Save minho-comcom-ai/c808462177ee239d02fbca7d33d7f21b to your computer and use it in GitHub Desktop.
const _package = require('./package')
let docker
try {
docker = require('./.version.json')
} catch (_) {
// NOTE(minho): Try to get the labels from docker.sock?
// https://stackoverflow.com/questions/37439887/how-to-access-the-metadata-of-a-docker-container-from-a-script-running-inside-th
docker = {}
}
const _getVersion = () => {
const versionJson = {
npm: {
name: _package.name,
version: _package.version,
},
docker,
}
const vcsString = JSON.stringify(docker)
const versionString = `${_package.name} ${_package.version} ${vcsString}`
return {
versionJson,
versionString,
}
}
const xPoweredBy = () => {
const { versionString } = _getVersion()
return (_, res, next) => {
res.setHeader('X-Powered-By', versionString) // TODO
next();
}
}
const getVersion = () => {
const { versionJson } = _getVersion()
return (_, res) => {
res.status(200).json(versionJson)
}
}
module.exports = {
xPoweredBy,
getVersion,
}
if (require.main === module) { // XXX: Entrypoint
console.log('# version.js write .version.json')
const [
__node,
__versionJs,
BUILD_DATE,
VCS_REF,
VCS_BRANCH,
VCS_DESCRIBED,
HOSTNAME,
] = process.argv
const version = {
BUILD_DATE,
VCS_REF,
VCS_BRANCH,
VCS_DESCRIBED,
HOSTNAME,
}
require('fs').writeFileSync('.version.json', JSON.stringify(version))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment