Toolkit: Copy config files to dist for plugin use/Fix circleci build errors (#23575)

* replaced run

* consolidated dist and toolkit

* Solved a few more issues
1. Need to explicitly copy circleci config to dist
   so that it's published
2. Detect build directory, and use "local" or "linked"
   mode for local builds.

* Reverted change used only for testing

* grafana-toolkit.js always required now. Copy to dist

* removed grafana-toolkit.dist.js, no longer required

* feedback from code review

* Code review comments 2.
This commit is contained in:
Stephanie Closson
2020-04-14 15:05:18 -06:00
committed by GitHub
parent 0652671443
commit 52575ff03f
3 changed files with 34 additions and 20 deletions

View File

@@ -1,3 +0,0 @@
#!/usr/bin/env node
require(`${__dirname}/grafana-toolkit.js`);

View File

@@ -5,26 +5,38 @@ const path = require('path');
let includeInternalScripts = false;
const isLinkedMode = () => {
// In circleci we are in linked mode. Detect by using the circle working directory,
// rather than the present working directory.
const pwd = process.env.CIRCLE_WORKING_DIRECTORY || process.env.PWD;
if (path.basename(pwd) === 'grafana-toolkit') {
return true;
}
try {
return fs.lstatSync(`${pwd}/node_modules/@grafana/toolkit`.replace('~', process.env.HOME)).isSymbolicLink();
} catch {
return false;
}
};
const entrypoint = () => {
const defaultEntryPoint = '../src/cli/index.js';
const toolkitDirectory = `${process.env['PWD']}/node_modules/@grafana/toolkit`;
const defaultEntryPoint = `${__dirname}/../src/cli/index.js`;
// IF we have a toolkit directory AND linked grafana toolkit AND the toolkit dir is a symbolic lik
// THEN run everything in linked mode
if (fs.existsSync(toolkitDirectory)) {
const tkStat = fs.lstatSync(toolkitDirectory);
if (tkStat.isSymbolicLink()) {
console.log('Running in 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,
});
if (isLinkedMode()) {
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;
return '../src/cli/index.ts';
}
includeInternalScripts = true;
return '../src/cli/index.ts';
}
// We are using npx, and a relative path does not find index.js