diff --git a/index.js b/index.js index e0799a8..e6ba542 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,47 @@ /// -var through = require("through2"); var path = require("path"); -module.exports = function (jadeTemplate, mojo) { - if (mojo === void 0) { mojo = undefined; } - return through.obj(function (file, enc, cb) { - //run callback function to signal end of plugin process. - return cb(null, file); +var beautylog = require("beautylog")("os"); +var nodegit = require("nodegit"); +var smartgit = {}; +smartgit.clone = function (cloneURL, dest) { + if (cloneURL === void 0) { cloneURL = "undefined"; } + if (dest === void 0) { dest = "undefined"; } + if (cloneURL == "undefined" || dest == "undefined") { + beautylog.error("smartgit.clone".blue + " : Something is strange about the way you invoked the function"); + return; + } + if (!/^\/.*/.test(dest)) { + beautylog.error("It seems that the given path " + dest + " is not absolute."); + return; + } + beautylog.log("Now cloning " + cloneURL); + var cloneOptions = {}; + cloneOptions.remoteCallbacks = { + certificateCheck: function () { return 1; }, + credentials: function (url, userName) { + return nodegit.Cred.sshKeyFromAgent(userName); + } + }; + var cloneRepository = nodegit.Clone(cloneURL, dest, {}); + var errorAndAttemptOpen = function () { + return nodegit.Repository.open(dest); + }; + cloneRepository.catch(errorAndAttemptOpen) + .then(function (repository) { + // Access any repository methods here. + console.log("Is the repository bare? %s", Boolean(repository.isBare())); }); }; +smartgit.commit = function (commitMessage) { +}; +smartgit.init = function (dest) { + if (dest === void 0) { dest = "undefined"; } + if (dest == "undefined") { + return; // ...and return function here if not + } + var isBare = 0; //lets create a subfolder + nodegit.Repository.init(dest, isBare).then(function (repo) { + // do something with repo here. + }); +}; +module.exports = smartgit; diff --git a/package.json b/package.json index 1333f99..7ec555b 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "an easy wrapper for nodegit", "main": "index.js", "scripts": { - "test": "(cd ts/compile && node compile.js)", + "test": "(cd ts/compile && node compile.js) && (node test.js)", "reinstall": "(rm -r node_modules && npm install)", "release": "(git pull origin master && npm version patch && git push origin master && git checkout release && git merge master && git push origin release && git checkout master)", "startdev": "(git checkout master && git pull origin master)" @@ -26,7 +26,8 @@ "homepage": "https://github.com/pushrocks/smartgit", "dependencies": { "beautylog": "^1.0.2", - "nodegit": "^0.5.0" + "nodegit": "^0.5.0", + "q": "^1.4.1" }, "devDependencies": { "gulp": "3.9.0", diff --git a/test b/test new file mode 160000 index 0000000..aad8492 --- /dev/null +++ b/test @@ -0,0 +1 @@ +Subproject commit aad8492c55ae5911f23b763da11fff05f5f15f95 diff --git a/test.js b/test.js new file mode 100644 index 0000000..c961d65 --- /dev/null +++ b/test.js @@ -0,0 +1,6 @@ +/// +var smartgit = require("./index.js"); +var beautylog = require("beautylog")("os"); +var path = require("path"); +smartgit.clone("https://github.com/pushrocks/cooltest.git", path.resolve("./test/")); +beautylog.success("Test successfull"); diff --git a/ts/index.ts b/ts/index.ts index 6584620..193590f 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -1,36 +1,25 @@ /// -var path = require("path"); -var beautylog = require("beautylog")("os"); -var nodegit = require("nodegit"); +/// +/// +/// + +var plugins = { + path: require("path"), + beautylog: require("beautylog")("os"), + nodegit: require("nodegit"), + Q: require("q") +}; + var smartgit:any = {}; -smartgit.clone = function(cloneURL:string = "undefined" ,dest:string = "undefined"){ - if (cloneURL == "undefined" || dest == "undefined") { - beautylog.error("smartgit.clone".blue + " : Something is strange about the way you invoked the function"); - return; +smartgit.clone = SmartgitClone + +smartgit.commit = function(pathArg:string,commitMessage:string) { + var result = plugins.nodegit.index.addByPath(pathArg); + if (result == 0) { + } - - var cloneOptions:any = {}; - cloneOptions.remoteCallbacks = { - certificateCheck: function() { return 1; }, - credentials: function(url, userName) { - return nodegit.Cred.sshKeyFromAgent(userName); - } - }; - var cloneRepository = nodegit.Clone(cloneURL, dest, cloneOptions); - var errorAndAttemptOpen = function() { - return nodegit.Repository.open(dest); - }; - cloneRepository.catch(errorAndAttemptOpen) - .then(function(repository) { - // Access any repository methods here. - console.log("Is the repository bare? %s", Boolean(repository.isBare())); - }); -}; - -smartgit.commit = function(commitMessage:string) { - }; smartgit.init = function(dest:string = "undefined") { @@ -38,9 +27,14 @@ smartgit.init = function(dest:string = "undefined") { return; // ...and return function here if not } var isBare = 0; //lets create a subfolder - nodegit.Repository.init(dest, isBare).then(function (repo) { + plugins.nodegit.Repository.init(dest, isBare).then(function (repo) { // do something with repo here. }); }; +smartgit.check = function(repository) { + return true; +}; + + module.exports = smartgit; diff --git a/ts/smartgit.add.ts b/ts/smartgit.add.ts new file mode 100644 index 0000000..e69de29 diff --git a/ts/smartgit.clone.ts b/ts/smartgit.clone.ts new file mode 100644 index 0000000..e0e49e7 --- /dev/null +++ b/ts/smartgit.clone.ts @@ -0,0 +1,34 @@ +/// +module SmartgitClone { + export function init() { + var clone = function(cloneURL:string = "undefined" ,dest:string = "undefined"){ + + /***** URL Checks ******/ + if (cloneURL == "undefined" || dest == "undefined") { + plugins.beautylog.error("smartgit.clone".blue + " : Something is strange about the way you invoked the function"); + return; + } + + /***** Path Checks ******/ + if (!/^\/.*/.test(dest)){ //check wether path is absolute + plugins.beautylog.error("It seems that the given path " + dest + " is not absolute."); + return; + } + + + plugins.beautylog.log("Now cloning " + cloneURL); + var cloneOptions:any = {}; + cloneOptions.remoteCallbacks = { + certificateCheck: function() { return 1; }, + credentials: function(url, userName) { + return plugins.nodegit.Cred.sshKeyFromAgent(userName); + } + }; + var cloneRepository = plugins.nodegit.Clone(cloneURL, dest, cloneOptions); + smartgit.check(cloneRepository); + }; + + + return clone; + } +} \ No newline at end of file diff --git a/ts/smartgit.init.ts b/ts/smartgit.init.ts new file mode 100644 index 0000000..e69de29 diff --git a/ts/test.ts b/ts/test.ts index 7a6c7c4..b0c44b2 100644 --- a/ts/test.ts +++ b/ts/test.ts @@ -1,3 +1,10 @@ /// var smartgit = require("./index.js"); -var beautylog = require("beautylog"); \ No newline at end of file +var beautylog = require("beautylog")("os"); +var path = require("path"); + + + +smartgit.clone("https://github.com/pushrocks/cooltest.git",path.resolve("./test/")); + +beautylog.success("Test successfull"); \ No newline at end of file