Skip to content
This repository was archived by the owner on Dec 20, 2023. It is now read-only.

Commit 2485231

Browse files
committed
[fixes #9] Make default command use
Which is `install or active <version> of mongodb`
1 parent 746d157 commit 2485231

File tree

5 files changed

+28
-34
lines changed

5 files changed

+28
-34
lines changed

bin/m.docopt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ m
33
The MongoDB version manager.
44

55
Usage:
6-
m use <v>
7-
m shell [<v>]
8-
m path [<v>]
9-
m d [<v>]
6+
m use <version>
7+
m shell [<version>]
8+
m path [<version>]
9+
m d [<version>]
1010
m kill
1111
m ls
12-
m available [--stable --unstable --all --pokemon]
13-
m [<v> --url --branch=<branch>]
12+
m available [--stable --unstable --rc --all --pokemon]
13+
m [<version> --url --branch=<branch>]
1414

1515
Examples:
1616
m <version> # Install or activate MongoDB <version>

bin/mongodb-version-manager.js renamed to bin/m.js

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ var mvm = require('../'),
77
pkg = require('../package.json'),
88
argv = docopt(fs.readFileSync(__dirname + '/m.docopt', 'utf-8'), {version: pkg.version}),
99
spawn = require('child_process').spawn,
10-
without = require('lodash.without'),
11-
pluck = require('lodash.pluck');
10+
_ = require('underscore'),
11+
debug = require('debug')('mongodb-version-manager');
1212

1313
function printVersions(versions, fn){
1414
mvm.current(function(err, current){
@@ -27,18 +27,11 @@ function printVersions(versions, fn){
2727
});
2828
}
2929

30-
var abort = function(err){
31-
console.error(err);
32-
process.exit(1);
30+
var abortIfError = function(err){
31+
if(err) return console.error(err) && process.exit(1);
3332
};
3433

3534
var commands = {
36-
show: function(opts){
37-
mvm.resolve(opts, function(err, v){
38-
if(err) return abort(err);
39-
console.log(argv['--url'] ? v.url : v.version);
40-
});
41-
},
4235
available: function(){
4336
var title = '';
4437
if(!argv['--rc'] && !argv['--stable'] && !argv['--unstable']){
@@ -66,20 +59,20 @@ var commands = {
6659
};
6760

6861
mvm.installed(function(err, installed){
69-
if(err) return abort(err);
62+
abortIfError(err);
7063

7164
mvm.available(opts, function(err, versions){
72-
if(err) return abort(err);
65+
abortIfError(err);
7366

7467
if(opts.pokemon){
7568
console.log(title + ' versions you haven\'t installed yet:');
76-
versions = without(versions, pluck(installed, 'version'));
69+
versions = _.without(versions, _.pluck(installed, 'version'));
7770
}
7871
else {
7972
console.log(title + ' versions you haven\'t installed yet:');
8073
}
8174
printVersions(versions, function(err){
82-
if(err) abort(err);
75+
abortIfError(err);
8376
});
8477
});
8578
});
@@ -102,16 +95,16 @@ var commands = {
10295
},
10396
use: function(opts){
10497
mvm.use(opts, function(err){
105-
if(err) return abort(err);
98+
abortIfError(err);
10699
mvm.current(function(err, v){
107-
if(err) return abort(err);
100+
abortIfError(err);
108101
console.log('switched to ' + v);
109102
});
110103
});
111104
},
112-
_default: function(){
105+
list: function(){
113106
mvm.installed(function(err, versions){
114-
if(err) return abort(err);
107+
abortIfError(err);
115108

116109
if(versions.length > 0){
117110
return printVersions(versions, function(err){
@@ -122,7 +115,7 @@ var commands = {
122115
console.log('0 versions installed. Run one of:');
123116

124117
mvm.resolve([{version: 'unstable'}, {version: 'stable'}], function(err, data){
125-
if(err) return abort(err);
118+
abortIfError(err);
126119

127120
console.log(' m use stable; # installs MongoDB v' + data.stable.version);
128121
console.log(' m use unstable; # installs MongoDB v' + data.unstable.version);
@@ -138,6 +131,7 @@ var opts = {
138131

139132
var cmd = Object.keys(commands).filter(function(name){
140133
return argv[name] === true;
141-
})[0] || (argv['<v>'] ? 'show' : '_default');
134+
})[0] || (argv['<v>'] ? 'use' : 'list');
135+
debug('cmd is `%s` with opts `%j`', cmd, opts);
142136

143137
commands[cmd](opts);

index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ var async = require('async'),
1010
download = require('./lib/download'),
1111
extract = require('./lib/extract'),
1212
versions = require('./lib/versions'),
13-
defaults = require('amp-defaults'),
1413
semver = require('semver'),
15-
debug = require('debug')('mongodb-version-manager');
14+
debug = require('debug')('mongodb-version-manager'),
15+
_ = require('underscore');
1616

1717
var VERSION = /[0-9]+\.[0-9]+\.[0-9]+([-_\.][a-zA-Z0-9]+)?/;
1818

@@ -65,7 +65,7 @@ module.exports.is = function(s, fn){
6565
};
6666

6767
module.exports.available = function(opts, fn){
68-
defaults((opts || {}), {
68+
opts = _.defaults((opts || {}), {
6969
stable: false,
7070
unstable: false,
7171
rc: false,

lib/resolve.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ var os = require('os'),
55
semver = require('semver'),
66
request = require('request'),
77
async = require('async'),
8-
defaults = require('amp-defaults');
8+
_ = require('underscore');
99

1010
module.exports = function(opts, fn){
1111
if(Array.isArray(opts)){
@@ -23,7 +23,7 @@ module.exports = function(opts, fn){
2323
}
2424
var handler = versions;
2525

26-
defaults(opts, {
26+
_.defaults(opts, {
2727
arch: ARCH,
2828
platform: PLATFORM,
2929
branch: 'master',

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "git://github.com/imlucas/mongodb-version-manager.git"
88
},
99
"bin": {
10-
"m": "bin/mongodb-version-manager.js"
10+
"m": "bin/m.js"
1111
},
1212
"scripts": {
1313
"test": "mocha",
@@ -18,7 +18,6 @@
1818
"mocha": "~2.0.1"
1919
},
2020
"dependencies": {
21-
"amp-defaults": "~1.0.1",
2221
"async": "~0.9.0",
2322
"cheerio": "~0.17.0",
2423
"debug": "~1.0.4",
@@ -30,6 +29,7 @@
3029
"semver": "~3.0.1",
3130
"tar": "~1.0.0",
3231
"tildify": "~1.0.0",
32+
"underscore": "~1.7.0",
3333
"untildify": "~1.0.0",
3434
"which": "~1.0.5"
3535
}

0 commit comments

Comments
 (0)