Files
pnpm/utils/scripts/src/copy-artifacts.ts
2021-10-14 02:45:12 +03:00

29 lines
1016 B
TypeScript

import fs from 'fs'
import * as execa from 'execa'
import path from 'path'
import makeEmptyDir from 'make-empty-dir'
const repoRoot = path.join(__dirname, '../../..')
const dest = path.join(repoRoot, 'dist')
const artifactsDir = path.join(repoRoot, 'packages/artifacts')
;(async () => { // eslint-disable-line
await makeEmptyDir(dest)
if (!fs.existsSync(path.join(artifactsDir, 'linux-x64/pnpm'))) {
execa.sync('pnpm', ['run', 'prepublishOnly', '--filter', '@pnpm/exe'], {
cwd: repoRoot,
stdio: 'inherit',
})
}
copyArtifact('linux-x64/pnpm', 'pnpm-linux-x64')
copyArtifact('linuxstatic-x64/pnpm', 'pnpm-linuxstatic-x64')
copyArtifact('linux-arm64/pnpm', 'pnpm-linux-arm64')
copyArtifact('macos-x64/pnpm', 'pnpm-macos-x64')
copyArtifact('macos-arm64/pnpm', 'pnpm-macos-arm64')
copyArtifact('win-x64/pnpm.exe', 'pnpm-win-x64.exe')
})()
function copyArtifact (srcName: string, destName: string) {
fs.copyFileSync(path.join(artifactsDir, srcName), path.join(dest, destName))
}