11var request = require ( 'request' ) ,
22 fs = require ( 'fs' ) ,
3- rimraf = require ( 'rimraf' ) ,
43 path = require ( 'path' ) ,
54 zlib = require ( 'zlib' ) ,
65 tar = require ( 'tar' ) ,
@@ -15,12 +14,15 @@ var request = require('request'),
1514 api = require ( './api' ) ,
1615 util = require ( 'util' ) ,
1716 chalk = require ( 'chalk' ) ,
17+ temp = require ( 'temp' ) ,
1818 _when = require ( 'when' ) ;
1919
2020var defaultSettings = {
2121 'public' : '.'
2222} ;
2323
24+ temp . track ( ) ;
25+
2426function getPrompt ( schema , onComplete , idx , results ) {
2527 if ( ! Array . isArray ( schema ) ) {
2628 console . log ( chalk . red ( 'An error occurred' ) ) ;
@@ -200,14 +202,14 @@ module.exports = {
200202 var firebase = results . firebase ;
201203 var dir = firebase ;
202204 var projectDir = path . resolve ( dir ) ;
205+ var tempDir = temp . mkdirSync ( ) ;
203206 if ( fs . existsSync ( projectDir ) ) {
204207 var i = 1 ;
205208 do {
206209 dir = firebase + '_' + i ++ ;
207210 projectDir = path . resolve ( dir ) ;
208211 } while ( fs . existsSync ( projectDir ) ) ;
209212 }
210- var tempDir = path . resolve ( "tmp-" + dir ) ;
211213
212214 results . directory = dir ;
213215 console . log ( 'Bootstrapping into directory \'' + dir + '\'...' ) ;
@@ -254,9 +256,6 @@ module.exports = {
254256
255257 try {
256258 fs . renameSync ( tempDir + templateRoot , projectDir ) ;
257- if ( fs . existsSync ( tempDir ) ) {
258- rimraf . sync ( tempDir ) ;
259- }
260259 } catch ( err ) {
261260 console . log ( chalk . red ( 'Installation Error' ) + ' - Couldn\'t relocate project assets' ) ;
262261 process . exit ( 1 ) ;
0 commit comments