smartgit/dist/smartgit.clone.js

43 lines
6.2 KiB
JavaScript

"use strict";
require("typings-global");
var plugins = require("./smartgit.plugins");
var SmartgitCheck = require("./smartgit.check");
exports.clone = function (optionsArg) {
var done = plugins.Q.defer();
/***** URL Checks ******/
//TODO make smartstring URL test
/***** Path Checks ******/
if (!/^\/.*/.test(optionsArg.to)) {
plugins.beautylog.error("It seems that the given path " + optionsArg.to + " is not absolute.");
return;
}
plugins.beautylog.log("Now cloning " + optionsArg.from);
var cloneOptions = {
fetchOpts: {
callbacks: {
certificateCheck: function () { return 1; },
credentials: function (url, userName) {
var gitRepo = new plugins.smartstring.GitRepo(url);
var host = gitRepo.host;
var sshDir = plugins.path.join(plugins.smartpath.get.home(), ".ssh/");
var pubKeyPath = plugins.path.join(sshDir, host + ".pub");
var privKeyPath = plugins.path.join(sshDir, host);
if (!optionsArg.keyPassphrase)
optionsArg.keyPassphrase = "";
return plugins.nodegit.Cred.sshKeyNew(userName, pubKeyPath, privKeyPath, optionsArg.keyPassphrase);
}
}
}
};
var cloneRepository = plugins.nodegit.Clone.clone(optionsArg.from, optionsArg.to, cloneOptions)
.then(function () {
SmartgitCheck(cloneRepository);
done.resolve();
}, function (err) {
console.log(err);
});
return done.promise;
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0Z2l0LmNsb25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUNQLENBQUMsQ0FEc0I7QUFDdkIsSUFBTyxPQUFPLFdBQVcsb0JBQW9CLENBQUMsQ0FBQztBQUMvQyxJQUFPLGFBQWEsV0FBVyxrQkFBa0IsQ0FBQyxDQUFDO0FBRXhDLGFBQUssR0FBRyxVQUFDLFVBS2Y7SUFDRCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLHlCQUF5QjtJQUN6QixnQ0FBZ0M7SUFFaEMsMEJBQTBCO0lBQzFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQSxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLCtCQUErQixHQUFHLFVBQVUsQ0FBQyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztRQUMvRixNQUFNLENBQUM7SUFDWCxDQUFDO0lBRUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxJQUFJLFlBQVksR0FBTztRQUNuQixTQUFTLEVBQUU7WUFDUCxTQUFTLEVBQUU7Z0JBQ1AsZ0JBQWdCLEVBQUUsY0FBYSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsV0FBVyxFQUFFLFVBQVMsR0FBRyxFQUFFLFFBQVE7b0JBQy9CLElBQUksT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25ELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ3hCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFDLE9BQU8sQ0FBQyxDQUFBO29CQUNwRSxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDO29CQUN6RCxJQUFJLFdBQVcsR0FBVSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3hELEVBQUUsQ0FBQSxDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQzt3QkFBQyxVQUFVLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztvQkFDNUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3RHLENBQUM7YUFDSjtTQUNKO0tBQ0osQ0FBQztJQUNGLElBQUksZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDO1NBQzFGLElBQUksQ0FBQztRQUNGLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQyxFQUFDLFVBQUMsR0FBRztRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUMiLCJmaWxlIjoic21hcnRnaXQuY2xvbmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiXG5pbXBvcnQgcGx1Z2lucyA9IHJlcXVpcmUoXCIuL3NtYXJ0Z2l0LnBsdWdpbnNcIik7XG5pbXBvcnQgU21hcnRnaXRDaGVjayA9IHJlcXVpcmUoXCIuL3NtYXJ0Z2l0LmNoZWNrXCIpO1xuXG5leHBvcnQgbGV0IGNsb25lID0gKG9wdGlvbnNBcmc6e1xuICAgICAgICBmcm9tOnN0cmluZyxcbiAgICAgICAgdG86c3RyaW5nLFxuICAgICAgICBrZXlQYXRoPzpzdHJpbmcsXG4gICAgICAgIGtleVBhc3NwaHJhc2U/OnN0cmluZ1xuICAgIH0pID0+IHtcbiAgICBsZXQgZG9uZSA9IHBsdWdpbnMuUS5kZWZlcigpO1xuICAgIC8qKioqKiBVUkwgQ2hlY2tzICoqKioqKi9cbiAgICAvL1RPRE8gbWFrZSBzbWFydHN0cmluZyBVUkwgdGVzdFxuXG4gICAgLyoqKioqIFBhdGggQ2hlY2tzICoqKioqKi9cbiAgICBpZiAoIS9eXFwvLiovLnRlc3Qob3B0aW9uc0FyZy50bykpeyAvL2NoZWNrIHdldGhlciBwYXRoIGlzIGFic29sdXRlXG4gICAgICAgIHBsdWdpbnMuYmVhdXR5bG9nLmVycm9yKFwiSXQgc2VlbXMgdGhhdCB0aGUgZ2l2ZW4gcGF0aCBcIiArIG9wdGlvbnNBcmcudG8gKyBcIiBpcyBub3QgYWJzb2x1dGUuXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGx1Z2lucy5iZWF1dHlsb2cubG9nKFwiTm93IGNsb25pbmcgXCIgKyBvcHRpb25zQXJnLmZyb20pO1xuICAgIHZhciBjbG9uZU9wdGlvbnM6YW55ID0ge1xuICAgICAgICBmZXRjaE9wdHM6IHtcbiAgICAgICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlQ2hlY2s6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSxcbiAgICAgICAgICAgICAgICBjcmVkZW50aWFsczogZnVuY3Rpb24odXJsLCB1c2VyTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZ2l0UmVwbyA9IG5ldyBwbHVnaW5zLnNtYXJ0c3RyaW5nLkdpdFJlcG8odXJsKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhvc3QgPSBnaXRSZXBvLmhvc3Q7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzc2hEaXIgPSBwbHVnaW5zLnBhdGguam9pbihwbHVnaW5zLnNtYXJ0cGF0aC5nZXQuaG9tZSgpLFwiLnNzaC9cIilcbiAgICAgICAgICAgICAgICAgICAgbGV0IHB1YktleVBhdGggPSBwbHVnaW5zLnBhdGguam9pbihzc2hEaXIsaG9zdCArIFwiLnB1YlwiKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByaXZLZXlQYXRoOnN0cmluZyA9IHBsdWdpbnMucGF0aC5qb2luKHNzaERpcixob3N0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYoIW9wdGlvbnNBcmcua2V5UGFzc3BocmFzZSkgb3B0aW9uc0FyZy5rZXlQYXNzcGhyYXNlID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBsdWdpbnMubm9kZWdpdC5DcmVkLnNzaEtleU5ldyh1c2VyTmFtZSwgcHViS2V5UGF0aCwgcHJpdktleVBhdGgsb3B0aW9uc0FyZy5rZXlQYXNzcGhyYXNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHZhciBjbG9uZVJlcG9zaXRvcnkgPSBwbHVnaW5zLm5vZGVnaXQuQ2xvbmUuY2xvbmUob3B0aW9uc0FyZy5mcm9tLCBvcHRpb25zQXJnLnRvLCBjbG9uZU9wdGlvbnMpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFNtYXJ0Z2l0Q2hlY2soY2xvbmVSZXBvc2l0b3J5KTtcbiAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgICAgICB9LChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgIH0pO1xuICAgIHJldHVybiBkb25lLnByb21pc2U7XG59OyJdfQ==