From 981cb04161b47bd00e6fa02d0dd04b6c974d965c Mon Sep 17 00:00:00 2001 From: PhilKunz Date: Mon, 18 Jan 2016 04:20:37 +0100 Subject: [PATCH] improve structure --- index.js | 131 +++++++++++++++++++++++++++-------------- package.json | 12 ++-- test.js | 7 ++- ts/compile/compile.js | 30 ---------- ts/compile/readme.md | 2 - ts/index.ts | 38 +++--------- ts/smartgit.check.ts | 9 +++ ts/smartgit.clone.ts | 18 ++---- ts/smartgit.commit.ts | 12 ++++ ts/smartgit.init.ts | 15 +++++ ts/smartgit.plugins.ts | 12 ++++ ts/test.ts | 9 +-- 12 files changed, 164 insertions(+), 131 deletions(-) delete mode 100644 ts/compile/compile.js delete mode 100644 ts/compile/readme.md create mode 100644 ts/smartgit.check.ts create mode 100644 ts/smartgit.commit.ts create mode 100644 ts/smartgit.plugins.ts diff --git a/index.js b/index.js index e6ba542..f937cb0 100644 --- a/index.js +++ b/index.js @@ -1,47 +1,90 @@ +/// +var SmartgitPlugins; +(function (SmartgitPlugins) { + SmartgitPlugins.init = function () { + var plugins = { + path: require("path"), + beautylog: require("beautylog"), + nodegit: require("nodegit"), + Q: require("q") + }; + return plugins; + }; +})(SmartgitPlugins || (SmartgitPlugins = {})); +/// +var SmartgitClone; +(function (SmartgitClone) { + function init() { + var clone = function (options) { + /***** URL Checks ******/ + if (options.from == "undefined" || options.to == "undefined") { + plugins.beautylog.error("smartgit.clone".blue + " : Something is strange about the way you invoked the function"); + return; + } + /***** Path Checks ******/ + if (!/^\/.*/.test(options.to)) { + plugins.beautylog.error("It seems that the given path " + options.to + " is not absolute."); + return; + } + plugins.beautylog.log("Now cloning " + options.from); + var cloneOptions = {}; + var cloneRepository = plugins.nodegit.Clone(options.from, options.to, cloneOptions); + smartgit.check(cloneRepository); + }; + return clone; + } + SmartgitClone.init = init; +})(SmartgitClone || (SmartgitClone = {})); +/// +var SmartgitInit; +(function (SmartgitInit) { + SmartgitInit.init = function () { + var gitinit = 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 + plugins.nodegit.Repository.init(dest, isBare).then(function (repo) { + // do something with repo here. + }); + }; + return gitinit; + }; +})(SmartgitInit || (SmartgitInit = {})); +/// +var SmartgitCommit; +(function (SmartgitCommit) { + SmartgitCommit.init = function () { + var commit = function (pathArg, commitMessage) { + var result = plugins.nodegit.index.addByPath(pathArg); + if (result == 0) { + } + }; + return commit; + }; +})(SmartgitCommit || (SmartgitCommit = {})); +/// +var SmartgitCheck; +(function (SmartgitCheck) { + SmartgitCheck.init = function () { + var check = function () { + return true; + }; + return check; + }; +})(SmartgitCheck || (SmartgitCheck = {})); /// -var path = require("path"); -var beautylog = require("beautylog")("os"); -var nodegit = require("nodegit"); +/// +/// +/// +/// +/// +var plugins = SmartgitPlugins.init(); +//Build the smartgit object 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. - }); -}; +smartgit.clone = SmartgitClone.init(); +smartgit.commit = SmartgitCommit.init(); +smartgit.check = SmartgitCheck.init(); +smartgit.init = SmartgitInit.init(); module.exports = smartgit; diff --git a/package.json b/package.json index 7ec555b..1df110a 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) && (node test.js)", + "test": "(npmts) && (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)" @@ -25,13 +25,11 @@ }, "homepage": "https://github.com/pushrocks/smartgit", "dependencies": { - "beautylog": "^1.0.2", - "nodegit": "^0.5.0", - "q": "^1.4.1" + "beautylog": "2.0.2", + "nodegit": "0.8.0", + "q": "1.4.1" }, "devDependencies": { - "gulp": "3.9.0", - "gulp-typescript": "2.9.2", - "pushrocks": "^1.0.20" + "npmts": "1.0.3" } } diff --git a/test.js b/test.js index c961d65..2129f5a 100644 --- a/test.js +++ b/test.js @@ -1,6 +1,9 @@ /// var smartgit = require("./index.js"); -var beautylog = require("beautylog")("os"); +var beautylog = require("beautylog"); var path = require("path"); -smartgit.clone("https://github.com/pushrocks/cooltest.git", path.resolve("./test/")); +smartgit.clone({ + from: "https://github.com/pushrocks/docs.git", + to: path.resolve("./test/temp/") +}); beautylog.success("Test successfull"); diff --git a/ts/compile/compile.js b/ts/compile/compile.js deleted file mode 100644 index a35699b..0000000 --- a/ts/compile/compile.js +++ /dev/null @@ -1,30 +0,0 @@ -// import gulp -var gulp = require("gulp") -var gulpTypescript = require("gulp-typescript"); -var pr = require("pushrocks"); - -gulp.task('compileTS', function() { - var stream = gulp.src('../index.ts') - .pipe(gulpTypescript({ - out: "index.js" - })) - .pipe(gulp.dest("../../")); - return stream; -}); - -gulp.task('compileTestTS', function() { - var stream = gulp.src('../test.ts') - .pipe(gulpTypescript({ - out: "test.js" - })) - .pipe(gulp.dest("../../")); - return stream; -}); - -gulp.task('default',['compileTS','compileTestTS'], function() { - pr.beautylog.success('Typescript compiled'); -}); - -//lets tell gulp to start with the default task. -pr.beautylog.log('Starting Gulp to compile TypeScript'); -gulp.start.apply(gulp, ['default']); \ No newline at end of file diff --git a/ts/compile/readme.md b/ts/compile/readme.md deleted file mode 100644 index b43dc07..0000000 --- a/ts/compile/readme.md +++ /dev/null @@ -1,2 +0,0 @@ -# How to compile. -Make sure gulp and gulp-taypescript from npm are available. Then run the gulpfile in this directory. \ No newline at end of file diff --git a/ts/index.ts b/ts/index.ts index 193590f..41990cd 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -1,40 +1,18 @@ /// +/// /// /// /// +/// -var plugins = { - path: require("path"), - beautylog: require("beautylog")("os"), - nodegit: require("nodegit"), - Q: require("q") -}; - +var plugins = SmartgitPlugins.init(); +//Build the smartgit object var smartgit:any = {}; - -smartgit.clone = SmartgitClone - -smartgit.commit = function(pathArg:string,commitMessage:string) { - var result = plugins.nodegit.index.addByPath(pathArg); - if (result == 0) { - - } -}; - -smartgit.init = function(dest:string = "undefined") { - if (dest == "undefined") { //lets check if a destination is defined... - return; // ...and return function here if not - } - var isBare = 0; //lets create a subfolder - plugins.nodegit.Repository.init(dest, isBare).then(function (repo) { - // do something with repo here. - }); -}; - -smartgit.check = function(repository) { - return true; -}; +smartgit.clone = SmartgitClone.init(); +smartgit.commit = SmartgitCommit.init(); +smartgit.check = SmartgitCheck.init(); +smartgit.init = SmartgitInit.init(); module.exports = smartgit; diff --git a/ts/smartgit.check.ts b/ts/smartgit.check.ts new file mode 100644 index 0000000..734311a --- /dev/null +++ b/ts/smartgit.check.ts @@ -0,0 +1,9 @@ +/// +module SmartgitCheck { + export var init = function(){ + var check = function() { + return true; + }; + return check; + } +} \ No newline at end of file diff --git a/ts/smartgit.clone.ts b/ts/smartgit.clone.ts index e0e49e7..ad63a1e 100644 --- a/ts/smartgit.clone.ts +++ b/ts/smartgit.clone.ts @@ -1,30 +1,24 @@ /// module SmartgitClone { export function init() { - var clone = function(cloneURL:string = "undefined" ,dest:string = "undefined"){ + var clone = function(options){ /***** URL Checks ******/ - if (cloneURL == "undefined" || dest == "undefined") { + if (options.from == "undefined" || options.to == "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."); + if (!/^\/.*/.test(options.to)){ //check wether path is absolute + plugins.beautylog.error("It seems that the given path " + options.to + " is not absolute."); return; } - plugins.beautylog.log("Now cloning " + cloneURL); + plugins.beautylog.log("Now cloning " + options.from); 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); + var cloneRepository = plugins.nodegit.Clone(options.from, options.to, cloneOptions); smartgit.check(cloneRepository); }; diff --git a/ts/smartgit.commit.ts b/ts/smartgit.commit.ts new file mode 100644 index 0000000..1603143 --- /dev/null +++ b/ts/smartgit.commit.ts @@ -0,0 +1,12 @@ +/// +module SmartgitCommit { + export var init = function() { + var commit = function(pathArg:string,commitMessage:string) { + var result = plugins.nodegit.index.addByPath(pathArg); + if (result == 0) { + + } + }; + return commit; + } +} \ No newline at end of file diff --git a/ts/smartgit.init.ts b/ts/smartgit.init.ts index e69de29..6c6210f 100644 --- a/ts/smartgit.init.ts +++ b/ts/smartgit.init.ts @@ -0,0 +1,15 @@ +/// +module SmartgitInit { + export var init = function(){ + var gitinit = function(dest:string = "undefined") { + if (dest == "undefined") { //lets check if a destination is defined... + return; // ...and return function here if not + } + var isBare = 0; //lets create a subfolder + plugins.nodegit.Repository.init(dest, isBare).then(function (repo) { + // do something with repo here. + }); + }; + return gitinit; + } +} \ No newline at end of file diff --git a/ts/smartgit.plugins.ts b/ts/smartgit.plugins.ts new file mode 100644 index 0000000..1692db8 --- /dev/null +++ b/ts/smartgit.plugins.ts @@ -0,0 +1,12 @@ +/// +module SmartgitPlugins { + export var init = function() { + var plugins = { + path: require("path"), + beautylog: require("beautylog"), + nodegit: require("nodegit"), + Q: require("q") + }; + return plugins; + } +} \ No newline at end of file diff --git a/ts/test.ts b/ts/test.ts index b0c44b2..b598e62 100644 --- a/ts/test.ts +++ b/ts/test.ts @@ -1,10 +1,11 @@ /// var smartgit = require("./index.js"); -var beautylog = require("beautylog")("os"); +var beautylog = require("beautylog"); var path = require("path"); - - -smartgit.clone("https://github.com/pushrocks/cooltest.git",path.resolve("./test/")); +smartgit.clone({ + from:"https://github.com/pushrocks/docs.git", + to:path.resolve("./test/temp/") +}); beautylog.success("Test successfull"); \ No newline at end of file