Skip to content

Commit 76779f5

Browse files
author
Chris Raynor
committed
Merge pull request #17 from firebase/v1.0.1
V1.0.1
2 parents d042137 + 2d9ae3e commit 76779f5

File tree

6 files changed

+52
-45
lines changed

6 files changed

+52
-45
lines changed

bin/firebase

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,13 @@ if (argv._.length === 0) {
2929
}
3030

3131
} else {
32-
if (argv.help) {
32+
if (
33+
argv.h ||
34+
argv.hel ||
35+
argv.hep ||
36+
argv.hepl ||
37+
argv.help
38+
) {
3339

3440
help.showHelp(argv._[0]);
3541

@@ -40,14 +46,14 @@ if (argv._.length === 0) {
4046
// Top-level functionality
4147

4248
case 'login':
43-
firebase.login();
49+
firebase.login(argv);
4450
break;
4551
case 'logout':
46-
firebase.logout(argv.d);
52+
firebase.logout(argv);
4753
break;
4854
case 'ls':
4955
case 'list':
50-
firebase.list();
56+
firebase.list(argv);
5157
break;
5258

5359
// Submodules

lib/app.js

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ var request = require('request'),
1818
_when = require('when');
1919

2020
var defaultSettings = {
21-
'public': '.'
21+
'public': '.',
22+
'ignore': ['firebase.json', '.*', '**/node_modules/**']
2223
};
2324

2425
temp.track();
@@ -51,7 +52,7 @@ function getPrompt(schema, onComplete, idx, results) {
5152

5253
module.exports = {
5354
init: function(argv) {
54-
auth.listFirebases().then(function(res) {
55+
auth.listFirebases(argv).then(function(res) {
5556

5657
var settingsFile = path.resolve('./firebase.json');
5758
if (fs.existsSync(settingsFile)) {
@@ -120,7 +121,8 @@ module.exports = {
120121
}
121122
var settings = {
122123
firebase: results.firebase,
123-
'public': results['public']
124+
'public': results['public'],
125+
'ignore': defaultSettings['ignore']
124126
};
125127
console.log('Initializing app into current directory...');
126128
auth.checkCanAccess(results.firebase, function(err) {
@@ -150,7 +152,7 @@ module.exports = {
150152
});
151153
},
152154
bootstrap: function(argv) {
153-
_when.join(this.getTemplates(), auth.listFirebases()).done(function(resultSet) {
155+
_when.join(this.getTemplates(), auth.listFirebases(argv)).done(function(resultSet) {
154156
var supportedTemplates = resultSet[0],
155157
res = resultSet[1];
156158

@@ -213,18 +215,11 @@ module.exports = {
213215

214216
results.directory = dir;
215217
console.log('Bootstrapping into directory \'' + dir + '\'...');
216-
try {
217-
fs.mkdirSync(projectDir, '0755');
218-
} catch (err) {
219-
console.log(chalk.red('Filesystem Error') + ' - Could not create new' +
220-
' directory');
221-
process.exit(1);
222-
}
223218

224219
// Load the project root if defined, and gracefully handle missing '/'
225-
var templateRoot = supportedTemplates[results.template].templateRoot || '/';
226-
if (templateRoot && templateRoot[0] !== '/') {
227-
templateRoot = '/' + templateRoot;
220+
var templateRoot = (supportedTemplates[results.template].templateRoot || '/').replace(/\//g, path.sep);
221+
if (templateRoot && templateRoot[0] !== path.sep) {
222+
templateRoot = path.sep + templateRoot;
228223
}
229224

230225
console.log('Downloading and unpacking template...');
@@ -284,15 +279,19 @@ module.exports = {
284279
console.log('Writing firebase.json settings file...');
285280
var settings = {
286281
'firebase': firebase,
287-
'public': '.'
282+
'public': defaultSettings['public'],
283+
'ignore': defaultSettings['ignore']
288284
};
289285

290286
if (supportedTemplates[results.template].settings) {
291287
if (supportedTemplates[results.template].settings['public']) {
292-
settings.public = supportedTemplates[results.template].settings['public'].replace(/\//g, path.sep)
288+
settings.public = supportedTemplates[results.template].settings['public'];
293289
}
294290
if (supportedTemplates[results.template].settings['rules']) {
295-
settings.rules = supportedTemplates[results.template].settings['rules'].replace(/\//g, path.sep);
291+
settings.rules = supportedTemplates[results.template].settings['rules'];
292+
}
293+
if (supportedTemplates[results.template].settings['ignore']) {
294+
settings.ignore = supportedTemplates[results.template].settings['ignore'];
296295
}
297296
}
298297

@@ -306,7 +305,7 @@ module.exports = {
306305
}
307306

308307
console.log(chalk.green('Successfully added template'));
309-
console.log('To deploy: %s then %s', chalk.bold(util.format('cd %s/', results.directory)), chalk.bold('firebase deploy'));
308+
console.log('To deploy: %s then %s', chalk.bold(util.format('cd %s', results.directory + path.sep)), chalk.bold('firebase deploy'));
310309
});
311310
});
312311
}, function(error) {
@@ -330,7 +329,7 @@ module.exports = {
330329
});
331330
},
332331
deploy: function(argv) {
333-
auth.requireLogin(function(err) {
332+
auth.requireLogin(argv, function(err) {
334333
if (err) {
335334
console.log(chalk.red('Login Error'));
336335
process.exit(1);
@@ -440,7 +439,7 @@ module.exports = {
440439
message = argv.message;
441440
}
442441

443-
upload.send(settings.firebase, settings['public'], directoryRef.name(), message, function(err, directory) {
442+
upload.send(settings.firebase, settings['public'], settings.ignore || defaultSettings.ignore, directoryRef.name(), message, function(err, directory) {
444443
if (err) {
445444
console.log(chalk.red('Deploy Error') + ' - Couldn\'t upload app');
446445
console.log(err);

lib/auth.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ var auth = {
1212
'.firebaserc'
1313
),
1414
maxRetries: 3,
15-
requireLogin: function(callback) {
15+
requireLogin: function(argv, callback) {
1616
var that = this;
1717

18-
if ((this.email.length === 0) || (this.token.length === 0)) {
18+
if (argv.email && argv.password) {
19+
this._attemptLogin(this.maxRetries, callback);
20+
} else if ((this.email.length === 0) || (this.token.length === 0)) {
1921
console.log('Please sign into your Firebase account to continue...');
2022
this._attemptLogin(this.maxRetries, callback);
2123
} else {
@@ -61,6 +63,8 @@ var auth = {
6163
if (tries > 0) {
6264
if (tries !== this.maxRetries) {
6365
console.log('Email or password incorrect, please try again');
66+
delete prompt.override.email;
67+
delete prompt.override.password;
6468
}
6569
this._loginRequest(function(err, email, token) {
6670
if (err) {
@@ -253,9 +257,9 @@ var auth = {
253257
} catch (e) {}
254258
return config;
255259
},
256-
listFirebases: function() {
260+
listFirebases: function(argv) {
257261
return _when.promise(function(resolve, reject, notify) {
258-
auth.requireLogin(function(err) {
262+
auth.requireLogin(argv, function(err) {
259263
if (err) {
260264
var error = new Error('Login Unsuccessful');
261265
error.type = 'LOGIN';

lib/firebase.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ var auth = require('./auth'),
33
chalk = require('chalk');
44

55
module.exports = {
6-
login: function() {
6+
login: function(argv) {
77
auth.login(function(err) {
88
if (err) {
99
console.log(chalk.red('Login Unsuccessful'));
@@ -13,8 +13,8 @@ module.exports = {
1313
}
1414
});
1515
},
16-
logout: function(deleteAll) {
17-
auth.logout(deleteAll, function(err) {
16+
logout: function(argv) {
17+
auth.logout(argv.d, function(err) {
1818
if (err) {
1919
console.log(chalk.red('Log Out Unsuccessful'));
2020
process.exit(1);
@@ -23,8 +23,8 @@ module.exports = {
2323
}
2424
});
2525
},
26-
list: function() {
27-
auth.listFirebases().then(function(res) {
26+
list: function(argv) {
27+
auth.listFirebases(argv).then(function(res) {
2828
res.showFirebases();
2929
}, function(error) {
3030
switch (error.type) {

lib/upload.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
var request = require('request'),
22
auth = require('./auth'),
33
api = require('./api'),
4-
fstream = require('fstream'),
4+
fstreamIgnore = require('fstream-ignore'),
55
tar = require('tar'),
66
zlib = require('zlib'),
77
temp = require('temp'),
@@ -12,7 +12,7 @@ var request = require('request'),
1212
temp.track();
1313

1414
module.exports = {
15-
send: function(firebase, publicDir, pushId, message, callback) {
15+
send: function(firebase, publicDir, ignoreRules, pushId, message, callback) {
1616
var writeStream = temp.createWriteStream({ suffix: '.tar.gz' }),
1717
filename = writeStream.path,
1818
fileCount = 0,
@@ -21,16 +21,11 @@ module.exports = {
2121

2222
console.log('Preparing to deploy Public Directory...');
2323

24-
fstream.Reader({
24+
var reader = fstreamIgnore({
2525
path: publicDir,
2626
type: 'Directory',
2727
follow: true,
2828
filter: function() {
29-
if (this.type !== 'Directory' && (
30-
this.basename.match(/^firebase\.json$/) ||
31-
this.basename.match(/^\./))) {
32-
return false;
33-
}
3429
if (this.type !== 'Directory') {
3530
fileCount += 1;
3631
}
@@ -39,8 +34,11 @@ module.exports = {
3934
}
4035
return true;
4136
}
42-
})
43-
.pipe(tar.Pack())
37+
});
38+
39+
reader.addIgnoreRules(ignoreRules);
40+
41+
reader.pipe(tar.Pack())
4442
.pipe(zlib.createGzip())
4543
.pipe(writeStream);
4644

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "firebase-tools",
33
"preferGlobal": true,
4-
"version": "1.0.0",
4+
"version": "1.0.1",
55
"description": "The Firebase Command Line Tools",
66
"keywords": [
77
"firebase"
@@ -29,7 +29,7 @@
2929
"tar": "0.1.x",
3030
"open": "0.0.x",
3131
"request": "2.34.x",
32-
"fstream": "0.1.x",
32+
"fstream-ignore": "0.0.x",
3333
"temp": "0.6.x",
3434
"firebase": "~1.0.11",
3535
"progress": "~1.1.5",

0 commit comments

Comments
 (0)