mirror of
https://github.com/microsoft/playwright-cli.git
synced 2026-09-14 19:59:39 +08:00
62 lines
2.3 KiB
JavaScript
62 lines
2.3 KiB
JavaScript
const { execSync } = require('child_process');
|
|
const fs = require('fs/promises');
|
|
const path = require('path');
|
|
|
|
const rootDir = path.resolve(__dirname, '..');
|
|
const skillsDir = path.join(rootDir, 'skills');
|
|
|
|
function run(command, options = {}) {
|
|
console.log(`Running: ${command}`);
|
|
execSync(command, { stdio: 'inherit', cwd: rootDir, ...options });
|
|
}
|
|
|
|
async function main() {
|
|
// 1. Install latest @playwright/cli as dev dependency
|
|
console.log('\n=== Installing @playwright/cli ===\n');
|
|
run('npm install --save-dev @playwright/cli@latest');
|
|
const { version } = require(path.join(rootDir, 'node_modules', '@playwright', 'cli', 'package.json'));
|
|
console.log(`Installed @playwright/cli version: ${version}`);
|
|
|
|
// 2. Run playwright-cli install-skills
|
|
console.log('\n=== Running playwright-cli install --skills ===\n');
|
|
run('npx playwright-cli install --skills');
|
|
|
|
// 3. Move generated skills into the existing skills folder
|
|
console.log('\n=== Updating skills folder ===\n');
|
|
const generatedSkillsDir = path.join(rootDir, '.claude', 'skills', 'playwright-cli');
|
|
const targetSkillsDir = path.join(skillsDir, 'playwright-cli');
|
|
|
|
try {
|
|
await fs.access(generatedSkillsDir);
|
|
// Remove existing skills and copy new ones
|
|
await fs.rm(targetSkillsDir, { recursive: true, force: true });
|
|
await fs.cp(generatedSkillsDir, targetSkillsDir, { recursive: true });
|
|
console.log(`Copied skills from ${generatedSkillsDir} to ${targetSkillsDir}`);
|
|
|
|
// Clean up generated skills directory
|
|
await fs.rm(path.join(rootDir, '.claude', 'skills'), { recursive: true });
|
|
console.log('Cleaned up generated skills directory');
|
|
} catch {
|
|
console.warn('Warning: Generated skills directory not found at', generatedSkillsDir);
|
|
}
|
|
|
|
// 4. Copy README from @playwright/cli to root folder
|
|
console.log('\n=== Copying README ===\n');
|
|
const packageReadme = path.join(rootDir, 'node_modules', '@playwright', 'cli', 'README.md');
|
|
const rootReadme = path.join(rootDir, 'README.md');
|
|
|
|
try {
|
|
await fs.copyFile(packageReadme, rootReadme);
|
|
console.log(`Copied README from ${packageReadme} to ${rootReadme}`);
|
|
} catch {
|
|
console.warn('Warning: README not found at', packageReadme);
|
|
}
|
|
|
|
console.log('\n=== Update complete! ===\n');
|
|
}
|
|
|
|
main().catch(err => {
|
|
console.error('Error:', err);
|
|
process.exit(1);
|
|
});
|