2019-06-28 07:11:12 -05:00
|
|
|
#!/usr/bin/env node
|
|
|
|
|
2020-04-14 11:46:29 -05:00
|
|
|
const fs = require('fs');
|
|
|
|
const path = require('path');
|
2019-06-28 07:11:12 -05:00
|
|
|
|
2020-04-14 11:46:29 -05:00
|
|
|
let includeInternalScripts = false;
|
2019-06-28 07:11:12 -05:00
|
|
|
|
2020-04-14 16:05:18 -05:00
|
|
|
const isLinkedMode = () => {
|
|
|
|
// In circleci we are in linked mode. Detect by using the circle working directory,
|
|
|
|
// rather than the present working directory.
|
2020-05-14 06:36:25 -05:00
|
|
|
const pwd = process.env.CIRCLE_WORKING_DIRECTORY || process.env.PWD || process.cwd();
|
2020-04-14 16:05:18 -05:00
|
|
|
|
|
|
|
if (path.basename(pwd) === 'grafana-toolkit') {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
2020-05-21 10:41:15 -05:00
|
|
|
const resolvedPath = path.resolve(`${__dirname}/../../../node_modules/@grafana/toolkit`);
|
|
|
|
return fs.lstatSync(resolvedPath).isSymbolicLink();
|
2020-04-14 16:05:18 -05:00
|
|
|
} catch {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2020-04-14 11:46:29 -05:00
|
|
|
const entrypoint = () => {
|
2020-06-26 12:45:39 -05:00
|
|
|
const entrypointBase = `${__dirname}/../src/cli/index`;
|
|
|
|
const resolvedJsDir = path.resolve(`${entrypointBase}.js`);
|
|
|
|
const resolvedTsDir = path.resolve(`${entrypointBase}.ts`);
|
2020-04-14 11:46:29 -05:00
|
|
|
|
|
|
|
// IF we have a toolkit directory AND linked grafana toolkit AND the toolkit dir is a symbolic lik
|
|
|
|
// THEN run everything in linked mode
|
2020-05-21 10:41:15 -05:00
|
|
|
if (isLinkedMode() || !fs.existsSync(resolvedJsDir)) {
|
2020-04-14 16:05:18 -05:00
|
|
|
console.log('Running in local/linked mode');
|
|
|
|
// This bin is used for cli executed internally
|
|
|
|
var tsProjectPath = path.resolve(__dirname, '../tsconfig.json');
|
|
|
|
require('ts-node').register({
|
|
|
|
project: tsProjectPath,
|
|
|
|
transpileOnly: true,
|
|
|
|
});
|
|
|
|
|
|
|
|
includeInternalScripts = true;
|
2020-05-21 10:41:15 -05:00
|
|
|
return resolvedTsDir;
|
2020-04-14 11:46:29 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
// The default entrypoint must exist, return it now.
|
2020-05-21 10:41:15 -05:00
|
|
|
return resolvedJsDir;
|
2020-04-14 11:46:29 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
require(entrypoint()).run(includeInternalScripts);
|