From 943a99f6229de686fae7f94429128764950fb732 Mon Sep 17 00:00:00 2001 From: Aetherinox Date: Sun, 23 Feb 2025 15:02:27 -0700 Subject: [PATCH] build: add `root.js` for id generation --- tvapp2/root.js | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 tvapp2/root.js diff --git a/tvapp2/root.js b/tvapp2/root.js new file mode 100644 index 00000000..cdc08a94 --- /dev/null +++ b/tvapp2/root.js @@ -0,0 +1,85 @@ +#!/usr/bin/env node +/* eslint-disable @typescript-eslint/no-var-requires */ + +/* + build by running + npm run build + + guid and uuid will be automatically generated and placed + inside .env file which will then be read by the github workflow + build script. +*/ + +/* + This script handles the following: + - read package.json + - create .env file + - return uuid, guid, version + + can be called with the following external commands: + - node root.js returns version of root + - node root.js generate generates uuid / guid and shows all env vars in console + - node root.js uuid returns root uuid + - node root.js guid returns root guid + - node root.js versiom returns version of root + + can be called with the following root commands: + - npm run root + - npm run root:generate + - npm run env-root + - npm run env-uuid + - npm run env-guid + - npm run env-version +*/ + +const fs = require('fs') +const { v5: uuid } = require('uuid') + +/* +* declarations › package.json +*/ + +const { version, repository } = JSON.parse(fs.readFileSync('package.json')) +const args = process.argv.slice(2, process.argv.length) +const action = args[0] +// const a = args[ 1 ]; +// const b = args[ 2 ]; + +if (action === 'guid') { + console.log(`${process.env.GUID}`) +} else if (action === 'setup') { + fs.writeFileSync('.env', '', (err) => { + if (err) { + console.error(err) + } else { + console.log(`Wrote to .env successfully`) + } + }) +} else if (action === 'generate') { + const buildGuid = uuid(`${repository.url}`, uuid.URL) + const buildUuid = uuid(version, buildGuid) + + const ids = ` +VERSION=${version} +GUID=${buildGuid} +UUID=${buildUuid} +` + + console.log(version) + console.log(buildGuid) + console.log(buildUuid) + + fs.writeFileSync('.env', ids, (err) => { + if (err) { + console.error(`Could not write env vars: ${err}`) + } else { + console.log(`Wrote env vars to .env`) + } + }) +} else if (action === 'uuid') { + console.log(`${process.env.UUID}`) +} else { + console.log(version) +} + +process.exit(0)