@itentialopensource/adapter-apache_airflow
Version:
This adapter integrates with system described as: Apache Airflow
36 lines (31 loc) • 1.51 kB
JavaScript
/* @copyright Itential, LLC 2019 */
const path = require('path');
const { spawnSync } = require('child_process');
const fs = require('fs-extra');
const { createBundle } = require('./artifactize');
const nodeEntryPath = path.resolve('.');
createBundle(nodeEntryPath).then((pathObj) => {
const { bundlePath, bundledAdapterPath } = pathObj;
const npmIgnorePath = path.join(bundledAdapterPath, '.npmignore');
const adapterPackagePath = path.join(bundledAdapterPath, 'package.json');
const artifactPackagePath = path.join(bundlePath, 'package.json');
// remove node_modules from .npmIgnore so that node_modules are included in the resulting tar from npm pack
let npmIgnoreString;
if (fs.existsSync(npmIgnorePath)) {
npmIgnoreString = fs.readFileSync(npmIgnorePath, 'utf8');
npmIgnoreString = npmIgnoreString.replace('node_modules', '');
npmIgnoreString = npmIgnoreString.replace('\n\n', '\n');
fs.writeFileSync(npmIgnorePath, npmIgnoreString);
}
// add files to package so that node_modules are included in the resulting tar from npm pack
const adapterPackage = fs.readJSONSync(adapterPackagePath);
adapterPackage.files = ['*'];
fs.writeJSONSync(artifactPackagePath, adapterPackage, { spaces: 2 });
const npmResult = spawnSync('npm', ['pack', '-q', bundlePath], { cwd: path.resolve(bundlePath, '..') });
if (npmResult.status === 0) {
fs.removeSync(bundlePath);
console.log('Bundle folder removed');
}
console.log('Script successful');
});