mirror of https://github.com/nocodb/nocodb
Wing-Kam Wong
2 years ago
3 changed files with 80 additions and 4 deletions
@ -0,0 +1,76 @@ |
|||||||
|
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() |
||||||
|
} |
Loading…
Reference in new issue