Skip to content

Commit 177f6bf

Browse files
committed
tests: init
1 parent 20584db commit 177f6bf

File tree

5 files changed

+4081
-49
lines changed

5 files changed

+4081
-49
lines changed

cli.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#!/usr/bin/env node
2+
'use strict'
3+
const yargs_parser = require('yargs-parser')
4+
const path = require("path");
5+
const chalk = require('chalk');
6+
const ora = require("ora");
7+
const { extract } = require('pacote');
8+
const fs = require("fs-extra");
9+
const os = require('os');
10+
const packageName = 'html5-boilerplate';
11+
const tempDir = os.tmpdir()+`/${packageName}-staging`;
12+
const elapsed = require("elapsed-time-logger");
13+
14+
module.exports = async () => {
15+
const argv = yargs_parser(process.argv.slice(2), {alias:{release: ['r']}});
16+
const timer = elapsed.start();
17+
const version = argv['release'] || 'latest';
18+
const targetDir = path.resolve(argv['_'][0] || './');
19+
const spinner = ora(`Downloading ${packageName} version '${version}' to ${targetDir}`).start();
20+
await fs.ensureDir(tempDir);
21+
try{
22+
const { from: nameWithVersion } = await extract(packageName + '@' + version, tempDir, {});
23+
spinner.text = `${nameWithVersion} copied to ${targetDir} in ${timer.get()}. Have fun!`;
24+
}catch(err){
25+
await fs.remove(tempDir);
26+
if(err.code === 'ETARGET'){
27+
spinner.fail(chalk.red(`version '${err.wanted}' not found in npm registry\navailable versions:`));
28+
console.log(err.versions.reverse().join(' | '));
29+
}else{
30+
spinner.fail('Unexpected error');
31+
console.error(err);
32+
}
33+
process.exit(0);
34+
}
35+
await fs.copy(tempDir+'/dist', targetDir);
36+
await fs.remove(tempDir);
37+
spinner.succeed();
38+
return;
39+
};

index.js

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1 @@
1-
#!/usr/bin/env node
2-
'use strict'
3-
const argv = require('yargs-parser')(process.argv.slice(2), {alias:{release: ['r']}})
4-
const path = require("path");
5-
const chalk = require('chalk');
6-
const ora = require("ora");
7-
const { extract } = require('pacote');
8-
const fs = require("fs-extra");
9-
const os = require('os');
10-
const packageName = 'html5-boilerplate';
11-
const elapsed = require("elapsed-time-logger");
12-
13-
(async () => {
14-
const timer = elapsed.start();
15-
const version = argv['release'] || 'latest';
16-
const targetDir = path.resolve(argv['_'][0] || './');
17-
const spinner = ora(`Downloading ${packageName} version '${version}' to ${targetDir}`).start();
18-
const tempDir = os.tmpdir()+`/${packageName}-staging`;
19-
await fs.ensureDir(tempDir);
20-
try{
21-
const { from: nameWithVersion } = await extract(packageName + '@' + version, tempDir, {});
22-
spinner.text = `${nameWithVersion} copied to ${targetDir} in ${timer.get()}. Have fun!`;
23-
}catch(err){
24-
await fs.remove(tempDir);
25-
if(err.code === 'ETARGET'){
26-
spinner.fail(chalk.red(`version '${err.wanted}' not found in npm registry\navailable versions:`));
27-
console.log(err.versions.reverse().join(' | '));
28-
}else{
29-
spinner.fail('Unexpected error');
30-
console.error(err);
31-
}
32-
process.exit(0);
33-
}
34-
await fs.copy(tempDir+'/dist', targetDir);
35-
await fs.remove(tempDir);
36-
spinner.succeed();
37-
return;
38-
})();
1+
require('./cli')();

0 commit comments

Comments
 (0)