|
1 | 1 | const {execSync} = require('child_process'); |
2 | 2 | const semver = require('semver'); |
| 3 | +const fs = require('fs'); |
| 4 | +const path = require('path'); |
| 5 | + |
| 6 | + |
| 7 | +function getPackageFilename(packageJsonPath, packageName, packageVersion) { |
| 8 | + const packageJsonContent = fs.readFileSync(packageJsonPath, { encoding: 'utf8' }); |
| 9 | + const packageJson = JSON.parse(packageJsonContent); |
| 10 | + const cleanPackageName = packageName.replace(/@/g, '').replace(/\//g, '-'); |
| 11 | + const snapshotUsed = packageJson?.jahia?.snapshot?.toString().toLowerCase() === 'true'; |
| 12 | + return `${cleanPackageName}-v${packageVersion}${snapshotUsed ? '-SNAPSHOT' : ''}.tgz`; |
| 13 | +} |
3 | 14 |
|
4 | 15 | function pack() { |
5 | 16 | console.log('Node version detected:', process.versions.node); |
6 | 17 | const yarnVersion = execSync('yarn --version', {encoding: 'utf8'}); |
7 | 18 | console.log('Yarn version:', yarnVersion); |
8 | | - const cleanPackageName = process.env.npm_package_name.replace(/@/g, '').replace(/\//g, '-'); |
9 | 19 |
|
10 | 20 | if (semver.satisfies(yarnVersion, '1.x')) { |
11 | 21 | console.log('Yarn Classic detected'); |
12 | 22 | console.log(execSync('yarn pack', {encoding: 'utf8'})); |
13 | 23 | } else if (semver.gte(yarnVersion, '2.0.0')) { |
14 | 24 | console.log('Yarn Berry detected'); |
15 | | - console.log(execSync(`yarn pack --out ${cleanPackageName}-v${process.env.npm_package_version}.tgz`, {encoding: 'utf8'})); |
| 25 | + const outputFileName = getPackageFilename(path.join(process.cwd(), 'package.json'),process.env.npm_package_name,process.env.npm_package_version); |
| 26 | + console.log(execSync(`yarn pack --out ${outputFileName}`, {encoding: 'utf8'})); |
16 | 27 | } |
17 | 28 | } |
18 | 29 |
|
19 | | -module.exports = pack; |
| 30 | +module.exports = { pack, getPackageFilename }; |
0 commit comments