1
1
#!/usr/bin/env node
2
- ' use strict'
3
- const yargs_parser = require ( ' yargs-parser' )
2
+ " use strict" ;
3
+ const yargs_parser = require ( " yargs-parser" ) ;
4
4
const path = require ( "path" ) ;
5
- const chalk = require ( ' chalk' ) ;
5
+ const chalk = require ( " chalk" ) ;
6
6
const ora = require ( "ora" ) ;
7
- const { extract } = require ( ' pacote' ) ;
7
+ const { extract } = require ( " pacote" ) ;
8
8
const fs = require ( "fs-extra" ) ;
9
- const os = require ( 'os' ) ;
10
- const packageName = ' html5-boilerplate' ;
11
- const tempDir = os . tmpdir ( ) + `/${ packageName } -staging` ;
9
+ const os = require ( "os" ) ;
10
+ const packageName = " html5-boilerplate" ;
11
+ const tempDir = os . tmpdir ( ) + `/${ packageName } -staging` ;
12
12
const elapsed = require ( "elapsed-time-logger" ) ;
13
13
14
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
- const msg = chalk . red ( `version '${ err . wanted } ' not found in npm registry\navailable versions:\n` )
28
- spinner . fail ( msg + err . versions . reverse ( ) . join ( ' | ' ) ) ;
29
- throw err . code ;
30
- }
31
- spinner . fail ( 'Unexpected error' ) ;
32
- throw new Error ( err ) ;
33
- }
34
- await fs . copy ( tempDir + '/dist' , targetDir ) ;
15
+ const argv = yargs_parser ( process . argv . slice ( 2 ) , {
16
+ alias : { release : [ "r" ] } ,
17
+ } ) ;
18
+ const timer = elapsed . start ( ) ;
19
+ const version = argv [ "release" ] || "latest" ;
20
+ const targetDir = path . resolve ( argv [ "_" ] [ 0 ] || "./" ) ;
21
+ const spinner = ora (
22
+ `Downloading ${ packageName } version '${ version } ' to ${ targetDir } `
23
+ ) . start ( ) ;
24
+ await fs . ensureDir ( tempDir ) ;
25
+ try {
26
+ const { from : nameWithVersion } = await extract (
27
+ packageName + "@" + version ,
28
+ tempDir ,
29
+ { }
30
+ ) ;
31
+ spinner . text = `${ nameWithVersion } copied to ${ targetDir } in ${ timer . get ( ) } . Have fun!` ;
32
+ } catch ( err ) {
35
33
await fs . remove ( tempDir ) ;
36
- spinner . succeed ( ) ;
37
- return ;
38
- } ;
34
+ if ( err . code === "ETARGET" ) {
35
+ const msg = chalk . red (
36
+ `version '${ err . wanted } ' not found in npm registry\navailable versions:\n`
37
+ ) ;
38
+ spinner . fail ( msg + err . versions . reverse ( ) . join ( " | " ) ) ;
39
+ throw err . code ;
40
+ }
41
+ spinner . fail ( "Unexpected error" ) ;
42
+ throw new Error ( err ) ;
43
+ }
44
+ await fs . copy ( tempDir + "/dist" , targetDir ) ;
45
+ await fs . remove ( tempDir ) ;
46
+ spinner . succeed ( ) ;
47
+ return ;
48
+ } ;
0 commit comments