11#!/usr/bin/env node
2- ' use strict'
3- const yargs_parser = require ( ' yargs-parser' )
2+ " use strict" ;
3+ const yargs_parser = require ( " yargs-parser" ) ;
44const path = require ( "path" ) ;
5- const chalk = require ( ' chalk' ) ;
5+ const chalk = require ( " chalk" ) ;
66const ora = require ( "ora" ) ;
7- const { extract } = require ( ' pacote' ) ;
7+ const { extract } = require ( " pacote" ) ;
88const 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` ;
1212const elapsed = require ( "elapsed-time-logger" ) ;
1313
1414module . 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 ) {
3533 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