1 |
|
2 | (function() {
|
3 | module.exports = function(opts) {
|
4 | var config, cson, current_version, ext, file, fs, semver, version, yaml;
|
5 | console.log('Versioning project...');
|
6 | cson = require('season');
|
7 | fs = require('fs');
|
8 | semver = require('semver');
|
9 | yaml = require('js-yaml');
|
10 | config = this.config('.');
|
11 | current_version = config.version;
|
12 | version = opts._[1];
|
13 | config.version = semver.valid(version);
|
14 | if (!config.version) {
|
15 | if (['major', 'minor', 'patch'].indexOf(version) === -1) {
|
16 | throw new Error("Invalid version: " + version);
|
17 | }
|
18 | config.version = semver.inc(current_version, version);
|
19 | }
|
20 | ext = config.ext;
|
21 | file = config.file;
|
22 | delete config.ext;
|
23 | delete config.file;
|
24 | switch (ext) {
|
25 | case 'yml':
|
26 | case 'yaml':
|
27 | fs.writeFileSync(file, yaml.safeDump(config));
|
28 | break;
|
29 | case 'cson':
|
30 | cson.writeFileSync(file, config);
|
31 | break;
|
32 | case 'json':
|
33 | fs.writeFileSync(file, JSON.stringify(config));
|
34 | break;
|
35 | case 'xml':
|
36 | fs.writeFileSync(file, xml.stringify(config));
|
37 | }
|
38 | return console.log(config.name + " now at version " + config.version + ".");
|
39 | };
|
40 |
|
41 | }).call(this);
|