@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
39 lines (31 loc) • 1.18 kB
text/typescript
import fs from 'node:fs'
import path from 'node:path'
import type { UnixTimestamp } from '@naturalcycles/js-lib/types'
import { appendToBashEnv, appendToGithubEnv, appendToGithubOutput } from '../fs/json2env.js'
import { runScript } from '../script/runScript.js'
import { generateBuildInfo } from '../util/buildInfo.util.js'
import { _yargs } from '../yargs/yargs.util.js'
runScript(async () => {
const { dir, overrideTimestamp } = _yargs().options({
dir: {
type: 'string',
desc: 'Output directory',
},
overrideTimestamp: {
type: 'number',
desc: 'This unix timestamp will be used instead of "current time"',
},
}).argv
const buildInfo = generateBuildInfo({
overrideTimestamp: overrideTimestamp as UnixTimestamp,
})
console.log(buildInfo)
if (dir) fs.mkdirSync(dir, { recursive: true })
const buildInfoPath = dir ? path.resolve(dir, 'buildInfo.json') : 'buildInfo.json'
fs.writeFileSync(buildInfoPath, JSON.stringify(buildInfo, null, 2))
const prefix = 'buildInfo_'
appendToBashEnv(buildInfo, prefix)
appendToGithubEnv(buildInfo, prefix)
appendToGithubOutput(buildInfo, prefix)
})