From 409c89cbdc0626941bafca0ee75eed9b9ae20400 Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Wed, 23 Aug 2023 11:31:40 +0300 Subject: [PATCH] require adevtool to always be started from the root of OS tree Several commands (e.g. generate-all) break when this is not the case. Several other commands have non-obvious dependency on this invariant. --- bin/run | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/bin/run b/bin/run index 617ac33..d66fb5f 100755 --- a/bin/run +++ b/bin/run @@ -6,6 +6,25 @@ if (NODE_MAJOR_VERSION < 18) { throw new Error('This tool requires NodeJS 18 or later'); } +const expectedPathEnding = '/vendor/adevtool/bin/run' +let cwd = process.cwd() +let validCwd = false +if (__filename.startsWith(cwd)) { + let ending = __filename.substring(cwd.length) + if (ending === expectedPathEnding) { + validCwd = true + } +} + +if (!validCwd) { + if (__filename.endsWith(expectedPathEnding)) { + console.log('adevtool should be started from the root of OS tree') + } else { + console.log('adevtool should be placed in vendor/adevtool directory') + } + process.exit(1) +} + require('@oclif/command').run() .then(require('@oclif/command/flush')) .catch(require('@oclif/errors/handle'))