mirror of https://github.com/nocodb/nocodb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.5 KiB
77 lines
2.5 KiB
2 years ago
|
const fs = require('fs')
|
||
|
const path = require('path');
|
||
|
const execSync = require('child_process').execSync;
|
||
|
|
||
|
// extract latest version from package.json
|
||
|
const nocodbSdkPackage = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'packages', 'nocodb-sdk', 'package.json'), 'utf8'))
|
||
|
|
||
|
const replacePackageName = (filePath) => {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
return fs.readFile(filePath, 'utf8', function (err, data) {
|
||
|
if (err) return reject(err)
|
||
|
var result = data.replace(/nocodb-sdk/g, nocodbSdkPackage.name);
|
||
|
return fs.writeFile(filePath, result, 'utf8', function (err) {
|
||
|
if (err) return reject(err)
|
||
|
return resolve()
|
||
|
});
|
||
|
});
|
||
|
})
|
||
|
}
|
||
|
|
||
|
const bumbVersionAndSave = () => {
|
||
|
// upgrade nocodb-sdk version in nocodb
|
||
|
execSync(`cd packages/nocodb && npm install --save --save-exact ${nocodbSdkPackage.name}@${nocodbSdkPackage.version}`, {});
|
||
|
// upgrade nocodb-sdk version in nc-gui-v2
|
||
|
execSync(`cd packages/nc-gui-v2 && npm install --save --save-exact ${nocodbSdkPackage.name}@${nocodbSdkPackage.version}`, {});
|
||
|
}
|
||
|
|
||
|
const dfs = function(dir) {
|
||
|
var res = [];
|
||
|
var list = fs.readdirSync(dir);
|
||
|
list.forEach(function(file) {
|
||
|
file = dir + '/' + file;
|
||
|
var stat = fs.statSync(file);
|
||
|
if (stat && stat.isDirectory()) {
|
||
|
res = res.concat(dfs(file));
|
||
|
} else {
|
||
|
const ext = path.extname(file).toLowerCase()
|
||
|
if (ext == '.vue' || ext == '.ts' || ext == '.js') {
|
||
|
res.push(file);
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
return res;
|
||
|
}
|
||
|
|
||
|
const searchAndReplace = (target) => {
|
||
|
const dirPath = path.resolve(path.join(__dirname, '..', 'packages'))
|
||
|
let list = dfs(dirPath)
|
||
|
list = [
|
||
|
...list,
|
||
|
path.join(__dirname, '..', 'packages', 'nc-gui-v2', 'package.json'),
|
||
|
path.join(__dirname, '..', 'packages', 'nocodb', 'package.json')
|
||
|
]
|
||
|
return Promise.all(list.map(d => {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
fs.readFile(d, function(err, content) {
|
||
|
if (err) reject(err)
|
||
|
if (content.indexOf(target) > -1) {
|
||
|
resolve(replacePackageName(d))
|
||
|
} else {
|
||
|
resolve()
|
||
|
}
|
||
|
})
|
||
|
})
|
||
|
}))
|
||
|
}
|
||
|
|
||
|
if (process.env.targetEnv === 'DEV') {
|
||
|
// replace nocodb-sdk by nocodb-sdk-daily if it is nightly build / pr build
|
||
|
searchAndReplace('nocodb-sdk')
|
||
|
.then(() => {
|
||
|
bumbVersionAndSave()
|
||
|
})
|
||
|
} else {
|
||
|
bumbVersionAndSave()
|
||
|
}
|