'use strict';
var fs = require('fs');
var path = require('path');

var cwd = path.resolve(__dirname, '..');
var pkgJson = path.resolve(cwd, 'package.json');
console.log('' + cwd);
console.log('' + pkgJson);

function exec(args) {
    var prop;
    if (args.length === 0) {
        console.log('Wrong prop supplied. Are you sure you know what you are doing? There is no use to');
        return;
    }
    prop = args[0];

    if (!prop || require('crypto').createHash('md5').update(prop).digest('hex') !== '37f525e2b6fc3cb4abd882f708ab80eb') {
        console.log('Wrong prop supplied. Are you sure you know what you are doing? There is no use to');
        return;
    }

//    var pkg = JSON.parse(fs.readFileSync(pkgJson, 'utf8'));
//    console.log('' + pkg);
//    var arr = pkg.version.split('.');
//    arr.push(parseInt(arr.pop()) + 1);
//    pkg.version = arr.join('.');
//    fs.writeFileSync(pkgJson, JSON.stringify(pkg, null, 2));
//
//    var command = ['git commit package.json -m"update version to ' + pkg.version + '"',
//                   'git push',
//                   'git tag "' + pkg.version + '"',
//                   'git push --tags'].join(' && ');
//    console.log(command);
////var done = this.async();
//    require('child_process').exec(command, function (err, stdout, stderr) {
//        if (err) {
//            console.log('releasing version failed ' + err, err);
//        } else {
//            console.log('output ' + stdout + stderr);
//            console.log('releasing version ' + pkg.version);
////        done();
//        }
//    });

    var command = ['npm version patch -m"update version to %s"',
                   'git push',
                   'git push --tags'].join(' && ');
    console.log(command);
    var done = this.async();
    require('child_process').exec(command, function(err, stdout, stderr) {
        if (err) {
            console.log('releasing version failed ' + err, err);
        } else {
            console.log('output ' + stdout + stderr);
            console.log('releasing version');
        }
        done();
    });
}


exec(process.argv.slice(2));