implement new class approach
This commit is contained in:
		
							
								
								
									
										50
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| # smartgit | ||||
| wrapper for git. | ||||
| smart git wrapper for node. | ||||
|  | ||||
| smartgit expects git to be installed on target machine. | ||||
|  | ||||
| @@ -19,22 +19,48 @@ smartgit expects git to be installed on target machine. | ||||
| [](https://nodejs.org/dist/latest-v6.x/docs/api/) | ||||
| [](http://standardjs.com/) | ||||
|  | ||||
| ## Features: | ||||
|  | ||||
| * clone a git repo | ||||
| * init a new repo | ||||
| * create a new git repo | ||||
| * add changes and make a new commit | ||||
| * commit changes | ||||
| * push changes | ||||
| * add/remove remotes | ||||
|  | ||||
| ## Usage | ||||
| We recommend the use of TypeScript for best in class intellisense | ||||
|  | ||||
| ```javascript | ||||
| import * as smartgit from 'smartgit' | ||||
| // import smartgit: | ||||
| import { GitRepo } from 'smartgit' | ||||
|  | ||||
| // Initialize smartgit: | ||||
| // -- note: there are 3 ways to initialize smartgit | ||||
| // -- -- 1. with a existing Git repo | ||||
| // -- -- 2. with a cloned Git repo | ||||
| // -- -- 3. with a new Git repo | ||||
|  | ||||
| // -- 1. existing Git Repo: | ||||
| let myExistingGitRepo = new GitRepo('/path/to/existing/git/repo/') | ||||
|  | ||||
| // -- 2. cloned Git Repo: | ||||
| let myClonedGitRepo: GitRepo | ||||
| smartgit.createRepoFromClone('git@github.com:username/reponame.git') | ||||
|     .then(gitRepo => { // non blocking | ||||
|         myClonedGitRepo = gitRepo | ||||
|     }) | ||||
|  | ||||
| // -- 3. new Git Repo | ||||
| let myNewGitRepo: GitRepo | ||||
| smartgit.createRepoFromInit('/path/to/new/folder') // smartgit will create any new folder, be careful | ||||
|     .then(gitRepo => { // non blocking | ||||
|         myNewGitRepo = gitRepo | ||||
|     }) | ||||
|  | ||||
| // Using smartgit instance | ||||
| // -- most used actions | ||||
| // -- all actions return promises, so make sure to use promise chaining for any dependent tasks | ||||
| myExistingGitRepo.addAll() // returns promise, stages all changed files | ||||
| myExistingGitRepo.add(['relative/path/to/file.txt','another/file2.txt']) // returns promise, stages specific files | ||||
| myExistingGitRepo.commit('my commit message') // returns promise, commits staged files | ||||
| myExistingGitRepo.status() // returns promise | ||||
|     .then(status => { // Use TypeScript for status type information | ||||
|  | ||||
|     }) | ||||
| myExistingGitRepo.check() // returns promise, checks repo health | ||||
| myExistingGitRepo.remoteAdd('git@github.com:username/reponame.git') | ||||
| ``` | ||||
|  | ||||
| Tip: use [smartssh](https://npmjs.com/smartssh) to setup your SSH environment | ||||
|   | ||||
							
								
								
									
										20
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +1,12 @@ | ||||
| export { add } from "./smartgit.add"; | ||||
| export { clone } from "./smartgit.clone"; | ||||
| export { commit } from "./smartgit.commit"; | ||||
| export { init } from "./smartgit.init"; | ||||
| export { pull } from "./smartgit.pull"; | ||||
| export { push } from "./smartgit.push"; | ||||
| export { remote } from "./smartgit.remote"; | ||||
| export { status } from "./smartgit.status"; | ||||
| /// <reference types="q" /> | ||||
| import * as q from 'q'; | ||||
| import { GitRepo } from './smartgit.classes.gitrepo'; | ||||
| export { GitRepo }; | ||||
| /** | ||||
|  * creates a new GitRepo Instance after cloning a project | ||||
|  */ | ||||
| export declare let createRepoFromClone: (fromArg: string, toArg: string) => q.Promise<GitRepo>; | ||||
| /** | ||||
|  * creates a new GitRepo instance after initializing a new Git Repository | ||||
|  */ | ||||
| export declare let createRepoFromInit: (destinationDirArg: string) => void; | ||||
|   | ||||
							
								
								
									
										43
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										43
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,18 +1,27 @@ | ||||
| "use strict"; | ||||
| var smartgit_add_1 = require("./smartgit.add"); | ||||
| exports.add = smartgit_add_1.add; | ||||
| var smartgit_clone_1 = require("./smartgit.clone"); | ||||
| exports.clone = smartgit_clone_1.clone; | ||||
| var smartgit_commit_1 = require("./smartgit.commit"); | ||||
| exports.commit = smartgit_commit_1.commit; | ||||
| var smartgit_init_1 = require("./smartgit.init"); | ||||
| exports.init = smartgit_init_1.init; | ||||
| var smartgit_pull_1 = require("./smartgit.pull"); | ||||
| exports.pull = smartgit_pull_1.pull; | ||||
| var smartgit_push_1 = require("./smartgit.push"); | ||||
| exports.push = smartgit_push_1.push; | ||||
| var smartgit_remote_1 = require("./smartgit.remote"); | ||||
| exports.remote = smartgit_remote_1.remote; | ||||
| var smartgit_status_1 = require("./smartgit.status"); | ||||
| exports.status = smartgit_status_1.status; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsK0NBQW1DO0FBQTNCLDZCQUFBLEdBQUcsQ0FBQTtBQUNYLG1EQUF1QztBQUEvQixpQ0FBQSxLQUFLLENBQUE7QUFDYixxREFBeUM7QUFBakMsbUNBQUEsTUFBTSxDQUFBO0FBQ2QsaURBQXFDO0FBQTdCLCtCQUFBLElBQUksQ0FBQTtBQUNaLGlEQUFxQztBQUE3QiwrQkFBQSxJQUFJLENBQUE7QUFDWixpREFBcUM7QUFBN0IsK0JBQUEsSUFBSSxDQUFBO0FBQ1oscURBQXlDO0FBQWpDLG1DQUFBLE1BQU0sQ0FBQTtBQUNkLHFEQUF5QztBQUFqQyxtQ0FBQSxNQUFNLENBQUEifQ== | ||||
| const q = require("q"); | ||||
| const plugins = require("./smartgit.plugins"); | ||||
| const smartgit_classes_gitrepo_1 = require("./smartgit.classes.gitrepo"); | ||||
| exports.GitRepo = smartgit_classes_gitrepo_1.GitRepo; | ||||
| /** | ||||
|  * creates a new GitRepo Instance after cloning a project | ||||
|  */ | ||||
| exports.createRepoFromClone = (fromArg, toArg) => { | ||||
|     let done = q.defer(); | ||||
|     plugins.smartfile.fs.ensureDir(toArg); | ||||
|     plugins.shelljs.exec(`git clone ${fromArg} ${toArg}`); | ||||
|     let newRepo = new smartgit_classes_gitrepo_1.GitRepo(toArg); | ||||
|     done.resolve(newRepo); | ||||
|     return done.promise; | ||||
| }; | ||||
| /** | ||||
|  * creates a new GitRepo instance after initializing a new Git Repository | ||||
|  */ | ||||
| exports.createRepoFromInit = (destinationDirArg) => { | ||||
|     let done = q.defer(); | ||||
|     plugins.smartfile.fs.ensureDir(destinationDirArg); | ||||
|     plugins.shelljs.exec(`cd destinationDirArg && git init`); | ||||
|     let newRepo = new smartgit_classes_gitrepo_1.GitRepo(destinationDirArg); | ||||
|     done.resolve(newRepo); | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdUJBQXNCO0FBQ3RCLDhDQUErQztBQUUvQyx5RUFBb0Q7QUFFaEQscURBQU87QUFHWDs7R0FFRztBQUNRLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxPQUFlLEVBQUUsS0FBYTtJQUM1RCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFXLENBQUE7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDckQsSUFBSSxPQUFPLEdBQUcsSUFBSSxrQ0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDdkIsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDUSxRQUFBLGtCQUFrQixHQUFHLENBQUMsaUJBQXlCO0lBQ3RELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQVcsQ0FBQTtJQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO0lBQ3hELElBQUksT0FBTyxHQUFHLElBQUksa0NBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDekIsQ0FBQyxDQUFBIn0= | ||||
							
								
								
									
										0
									
								
								dist/postinstall.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										0
									
								
								dist/postinstall.d.ts
									
									
									
									
										vendored
									
									
								
							
							
								
								
									
										3
									
								
								dist/postinstall.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/postinstall.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| "use strict"; | ||||
| let shelljs = require("shelljs"); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGluc3RhbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9wb3N0aW5zdGFsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDIn0= | ||||
							
								
								
									
										5
									
								
								dist/smartgit.add.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								dist/smartgit.add.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +0,0 @@ | ||||
| /// <reference types="q" /> | ||||
| import * as plugins from "./smartgit.plugins"; | ||||
| export declare let add: { | ||||
|     addAll: (dirPathArg: string) => plugins.Q.Promise<{}>; | ||||
| }; | ||||
							
								
								
									
										21
									
								
								dist/smartgit.add.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								dist/smartgit.add.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,21 +0,0 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./smartgit.plugins"); | ||||
| const helpers = require("./smartgit.helpers"); | ||||
| let addAll = (dirPathArg) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if (!helpers.isGitDirectory(dirPathArg)) { | ||||
|         let err = new Error("smartgit.add expects a valid git directory!"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
|     // if everything is ok proceed | ||||
|     plugins.shelljs.exec(`(cd ${dirPathArg} && git add -A && git status)`); | ||||
|     done.resolve(dirPathArg); | ||||
|     return done.promise; | ||||
| }; | ||||
| exports.add = { | ||||
|     addAll: addAll | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQuYWRkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRnaXQuYWRkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw4Q0FBOEM7QUFDOUMsOENBQThDO0FBRTlDLElBQUksTUFBTSxHQUFHLENBQUMsVUFBaUI7SUFDM0IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixFQUFFLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLElBQUksR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7UUFDbkUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUFBLENBQUM7SUFDRiw4QkFBOEI7SUFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxVQUFVLCtCQUErQixDQUFDLENBQUM7SUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFUyxRQUFBLEdBQUcsR0FBRztJQUNiLE1BQU0sRUFBRSxNQUFNO0NBQ2pCLENBQUEifQ== | ||||
							
								
								
									
										2
									
								
								dist/smartgit.check.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/smartgit.check.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +0,0 @@ | ||||
| declare var _default: (repoArg: any) => boolean; | ||||
| export = _default; | ||||
							
								
								
									
										5
									
								
								dist/smartgit.check.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								dist/smartgit.check.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +0,0 @@ | ||||
| "use strict"; | ||||
| module.exports = function (repoArg) { | ||||
|     return true; | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQuY2hlY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGdpdC5jaGVjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsaUJBQVMsVUFBUyxPQUFPO0lBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDIn0= | ||||
							
								
								
									
										57
									
								
								dist/smartgit.classes.gitrepo.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								dist/smartgit.classes.gitrepo.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | ||||
| /// <reference types="q" /> | ||||
| import * as q from 'q'; | ||||
| /** | ||||
|  * class GitRepo allows access to git directories from node | ||||
|  */ | ||||
| export declare class GitRepo { | ||||
|     repoBase: string; | ||||
|     constructor(repoBaseArg: string); | ||||
|     /** | ||||
|      * checks if the Repo is valid | ||||
|      */ | ||||
|     check(): boolean; | ||||
|     /** | ||||
|      * stage all files in working directory | ||||
|      */ | ||||
|     addAll(dirPathArg: string): q.Promise<{}>; | ||||
|     /** | ||||
|      * add a remote to the GitRepo | ||||
|      */ | ||||
|     remoteAdd(remoteNameArg: string, remoteLinkArg: string): q.Promise<{}>; | ||||
|     /** | ||||
|      * list remotes for a Gip | ||||
|      */ | ||||
|     remoteList(dirPathArg: any): q.Promise<{}>; | ||||
|     /** | ||||
|      * remove remote | ||||
|      */ | ||||
|     remoteRemove(dirPathArg: string): q.Promise<{}>; | ||||
|     /** | ||||
|      * commit all files that are currently staged | ||||
|      */ | ||||
|     commit(commitMessage: string): q.Promise<{}>; | ||||
|     /** | ||||
|      * pull latest changes from remote | ||||
|      */ | ||||
|     pull(sourceArg?: string, branchArg?: string): q.Promise<{}>; | ||||
|     /** | ||||
|      * push new commits to remote | ||||
|      */ | ||||
|     push(remoteNameArg?: string, remoteBranchArg?: string): q.Promise<{}>; | ||||
|     /** | ||||
|      * sync | ||||
|      */ | ||||
|     sync(): void; | ||||
|     /** | ||||
|      * get the current status | ||||
|      */ | ||||
|     status(): q.Promise<{}>; | ||||
| } | ||||
| /** | ||||
|  * creates a new GitRepo Instance after cloning a project | ||||
|  */ | ||||
| export declare let createRepoFromClone: (fromArg: string, toArg: string) => q.Promise<GitRepo>; | ||||
| /** | ||||
|  * creates a new GitRepo instance after initializing a new Git Repository | ||||
|  */ | ||||
| export declare let createRepoFromInit: (destinationDirArg: string) => void; | ||||
							
								
								
									
										143
									
								
								dist/smartgit.classes.gitrepo.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								dist/smartgit.classes.gitrepo.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										9
									
								
								dist/smartgit.clone.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								dist/smartgit.clone.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,9 +0,0 @@ | ||||
| /// <reference types="q" /> | ||||
| import plugins = require("./smartgit.plugins"); | ||||
| export declare let clone: (optionsArg: { | ||||
|     from: string; | ||||
|     to: string; | ||||
|     key?: string; | ||||
|     keyPath?: string; | ||||
|     keyPassphrase?: string; | ||||
| }) => plugins.Q.Promise<{}>; | ||||
							
								
								
									
										10
									
								
								dist/smartgit.clone.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								dist/smartgit.clone.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,10 +0,0 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./smartgit.plugins"); | ||||
| exports.clone = (optionsArg) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     plugins.smartfile.fs.ensureDir(optionsArg.to); | ||||
|     plugins.shelljs.exec(`git clone ${optionsArg.from} ${optionsArg.to}`); | ||||
|     done.resolve(); | ||||
|     return done.promise; | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQuY2xvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGdpdC5jbG9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOENBQStDO0FBR3BDLFFBQUEsS0FBSyxHQUFHLENBQUMsVUFNbkI7SUFDRyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxVQUFVLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyJ9 | ||||
							
								
								
									
										3
									
								
								dist/smartgit.commit.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/smartgit.commit.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| /// <reference types="q" /> | ||||
| import * as plugins from "./smartgit.plugins"; | ||||
| export declare let commit: (dirPathArg: string, commitMessage: string) => plugins.Q.Promise<{}>; | ||||
							
								
								
									
										18
									
								
								dist/smartgit.commit.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								dist/smartgit.commit.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,18 +0,0 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./smartgit.plugins"); | ||||
| const helpers = require("./smartgit.helpers"); | ||||
| exports.commit = (dirPathArg, commitMessage) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if (!helpers.isGitDirectory(dirPathArg)) { | ||||
|         let err = new Error("smartgit.commit expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
|     // if everything is all right proceed | ||||
|     plugins.shelljs.exec(`(cd ${dirPathArg} && git commit -m "${commitMessage}")`); | ||||
|     done.resolve(); | ||||
|     return done.promise; | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQuY29tbWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRnaXQuY29tbWl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw4Q0FBOEM7QUFDOUMsOENBQThDO0FBRW5DLFFBQUEsTUFBTSxHQUFHLENBQUMsVUFBaUIsRUFBQyxhQUFvQjtJQUN2RCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLEVBQUUsQ0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBLENBQUM7UUFDcEMsSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNyRSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQUEsQ0FBQztJQUNGLHFDQUFxQztJQUNyQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLFVBQVUsc0JBQXNCLGFBQWEsSUFBSSxDQUFDLENBQUM7SUFDL0UsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDIn0= | ||||
							
								
								
									
										1
									
								
								dist/smartgit.helpers.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								dist/smartgit.helpers.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| export declare let isGitDirectory: (dirPathArg: any) => boolean; | ||||
							
								
								
									
										11
									
								
								dist/smartgit.helpers.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								dist/smartgit.helpers.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,11 +0,0 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./smartgit.plugins"); | ||||
| exports.isGitDirectory = (dirPathArg) => { | ||||
|     try { | ||||
|         return plugins.smartfile.fs.isDirectory(plugins.path.join(dirPathArg, ".git")); | ||||
|     } | ||||
|     catch (err) { | ||||
|         return false; | ||||
|     } | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Z2l0LmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDhDQUE4QztBQUVuQyxRQUFBLGNBQWMsR0FBRyxDQUFDLFVBQVU7SUFDbkMsSUFBSSxDQUFDO1FBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FDbkMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDLE1BQU0sQ0FBQyxDQUN2QyxDQUFDO0lBQ04sQ0FDQTtJQUFBLEtBQUssQ0FBQSxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUM7UUFDUCxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQ2pCLENBQUM7QUFDTCxDQUFDLENBQUEifQ== | ||||
							
								
								
									
										3
									
								
								dist/smartgit.init.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/smartgit.init.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| /// <reference types="q" /> | ||||
| import plugins = require("./smartgit.plugins"); | ||||
| export declare let init: (dirPathArg: string) => plugins.Q.Promise<{}>; | ||||
							
								
								
									
										17
									
								
								dist/smartgit.init.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								dist/smartgit.init.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,17 +0,0 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./smartgit.plugins"); | ||||
| exports.init = (dirPathArg) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if (typeof dirPathArg == "undefined") { | ||||
|         let err = new Error("smartgit.init requires an absolute directory path!"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject("err"); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
|     plugins.smartfile.fs.ensureDir(dirPathArg); | ||||
|     plugins.shelljs.exec(`(cd ${dirPathArg} && git init)`); | ||||
|     done.resolve(dirPathArg); | ||||
|     return done.promise; | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQuaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Z2l0LmluaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDhDQUErQztBQUVwQyxRQUFBLElBQUksR0FBRyxDQUFDLFVBQWlCO0lBQ2hDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsRUFBRSxDQUFDLENBQUMsT0FBTyxVQUFVLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFBO1FBQ3pFLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFBQSxDQUFDO0lBQ0YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sVUFBVSxlQUFlLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyJ9 | ||||
							
								
								
									
										15
									
								
								dist/smartgit.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								dist/smartgit.plugins.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +1,7 @@ | ||||
| import "typings-global"; | ||||
| export import path = require("path"); | ||||
| export import beautylog = require("beautylog"); | ||||
| export import Q = require("q"); | ||||
| export import shelljs = require("shelljs"); | ||||
| export import smartfile = require("smartfile"); | ||||
| export import smartpath = require("smartpath"); | ||||
| export import smartstring = require("smartstring"); | ||||
| import 'typings-global'; | ||||
| export import path = require('path'); | ||||
| export import beautylog = require('beautylog'); | ||||
| export import shelljs = require('shelljs'); | ||||
| export import smartfile = require('smartfile'); | ||||
| export import smartpath = require('smartpath'); | ||||
| export import smartstring = require('smartstring'); | ||||
|   | ||||
							
								
								
									
										3
									
								
								dist/smartgit.plugins.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/smartgit.plugins.js
									
									
									
									
										vendored
									
									
								
							| @@ -2,9 +2,8 @@ | ||||
| require("typings-global"); | ||||
| exports.path = require("path"); | ||||
| exports.beautylog = require("beautylog"); | ||||
| exports.Q = require("q"); | ||||
| exports.shelljs = require("shelljs"); | ||||
| exports.smartfile = require("smartfile"); | ||||
| exports.smartpath = require("smartpath"); | ||||
| exports.smartstring = require("smartstring"); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Z2l0LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUN2QiwrQkFBb0M7QUFDcEMseUNBQThDO0FBQzlDLHlCQUE4QjtBQUM5QixxQ0FBMEM7QUFDMUMseUNBQThDO0FBQzlDLHlDQUE4QztBQUM5Qyw2Q0FBa0QifQ== | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Z2l0LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUN2QiwrQkFBb0M7QUFDcEMseUNBQThDO0FBQzlDLHFDQUEwQztBQUMxQyx5Q0FBOEM7QUFDOUMseUNBQThDO0FBQzlDLDZDQUFrRCJ9 | ||||
							
								
								
									
										3
									
								
								dist/smartgit.pull.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/smartgit.pull.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| /// <reference types="q" /> | ||||
| import * as plugins from "./smartgit.plugins"; | ||||
| export declare let pull: (dirPathArg: string, sourceArg?: string, branchArg?: string) => plugins.Q.Promise<{}>; | ||||
							
								
								
									
										18
									
								
								dist/smartgit.pull.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								dist/smartgit.pull.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,18 +0,0 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./smartgit.plugins"); | ||||
| const helpers = require("./smartgit.helpers"); | ||||
| exports.pull = (dirPathArg, sourceArg = "", branchArg = "") => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if (!helpers.isGitDirectory(dirPathArg)) { | ||||
|         let err = new Error("smartgit.pull expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
|     // if everything is allright proceed | ||||
|     plugins.shelljs.exec(`(cd ${dirPathArg} && git pull ${sourceArg} ${branchArg})`); | ||||
|     done.resolve(dirPathArg); | ||||
|     return done.promise; | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQucHVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Z2l0LnB1bGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDhDQUE4QztBQUM5Qyw4Q0FBOEM7QUFFbkMsUUFBQSxJQUFJLEdBQUcsQ0FBQyxVQUFpQixFQUFDLFlBQW1CLEVBQUUsRUFBRSxZQUFtQixFQUFFO0lBQzdFLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsRUFBRSxDQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUEsQ0FBQztRQUNwQyxJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFBQSxDQUFDO0lBQ0Ysb0NBQW9DO0lBQ3BDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sVUFBVSxnQkFBZ0IsU0FBUyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDakYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUMifQ== | ||||
							
								
								
									
										3
									
								
								dist/smartgit.push.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/smartgit.push.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| /// <reference types="q" /> | ||||
| import * as plugins from "./smartgit.plugins"; | ||||
| export declare let push: (dirPathArg: string, remoteNameArg?: string, remoteBranchArg?: string) => plugins.Q.Promise<{}>; | ||||
							
								
								
									
										17
									
								
								dist/smartgit.push.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								dist/smartgit.push.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,17 +0,0 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./smartgit.plugins"); | ||||
| const helpers = require("./smartgit.helpers"); | ||||
| exports.push = (dirPathArg, remoteNameArg = "", remoteBranchArg = "") => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if (!helpers.isGitDirectory(dirPathArg)) { | ||||
|         let err = new Error("smartgit.push expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     } | ||||
|     // if everything seems allright proceed | ||||
|     plugins.shelljs.exec(`(cd ${dirPathArg} && git push ${remoteNameArg} ${remoteBranchArg})`); | ||||
|     done.resolve(); | ||||
|     return done.promise; | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQucHVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Z2l0LnB1c2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDhDQUE4QztBQUM5Qyw4Q0FBOEM7QUFFbkMsUUFBQSxJQUFJLEdBQUcsQ0FBQyxVQUFpQixFQUFFLGdCQUF1QixFQUFFLEVBQUUsa0JBQXlCLEVBQUU7SUFDeEYsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixFQUFFLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLElBQUksR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7UUFDbkUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELHVDQUF1QztJQUN2QyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLFVBQVUsZ0JBQWdCLGFBQWEsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0lBQzNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQyJ9 | ||||
							
								
								
									
										7
									
								
								dist/smartgit.remote.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								dist/smartgit.remote.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +0,0 @@ | ||||
| /// <reference types="q" /> | ||||
| import * as plugins from "./smartgit.plugins"; | ||||
| export declare let remote: { | ||||
|     add: (dirPathArg: any, remoteNameArg: string, remoteLinkArg: string) => plugins.Q.Promise<{}>; | ||||
|     list: (dirPathArg: any) => plugins.Q.Promise<{}>; | ||||
|     remove: (dirPathArg: string) => plugins.Q.Promise<{}>; | ||||
| }; | ||||
							
								
								
									
										66
									
								
								dist/smartgit.remote.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										66
									
								
								dist/smartgit.remote.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,66 +0,0 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./smartgit.plugins"); | ||||
| const helpers = require("./smartgit.helpers"); | ||||
| let add = (dirPathArg, remoteNameArg, remoteLinkArg) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if (!helpers.isGitDirectory(dirPathArg)) { | ||||
|         let err = new Error("smartgit.remote.add expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
|     if (!remoteNameArg) { | ||||
|         let err = new Error("smartgit.remote.add expects a valid remote name"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
|     if (!remoteLinkArg) { | ||||
|         let err = new Error(); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
|     // if everything is all right proceed | ||||
|     plugins.shelljs.exec(`cd ${dirPathArg} && git remote add ${remoteNameArg} ${remoteLinkArg}`); | ||||
|     exports.remote.list(dirPathArg); | ||||
|     done.resolve(); | ||||
|     return done.promise; | ||||
| }; | ||||
| let check = (dirPathArg, remoteNameArg, remoteLinkArg) => { | ||||
| }; | ||||
| let list = (dirPathArg) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     let remotes = {}; | ||||
|     if (!helpers.isGitDirectory(dirPathArg)) { | ||||
|         let err = new Error("smartgit.remote.list expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
|     // if  everything is all right proceed | ||||
|     plugins.shelljs.exec(`cd ${dirPathArg} && git remote -v`).stdout; | ||||
|     done.resolve(remotes); | ||||
|     return done.promise; | ||||
| }; | ||||
| let remove = (dirPathArg) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if (!helpers.isGitDirectory(dirPathArg)) { | ||||
|         let err = new Error("smartgit.remote.remove expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
|     // if everything is all right  | ||||
| }; | ||||
| exports.remote = { | ||||
|     add: add, | ||||
|     list: list, | ||||
|     remove: remove | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQucmVtb3RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRnaXQucmVtb3RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw4Q0FBOEM7QUFDOUMsOENBQThDO0FBRTlDLElBQUksR0FBRyxHQUFHLENBQUMsVUFBVSxFQUFDLGFBQW9CLEVBQUUsYUFBb0I7SUFDNUQsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixFQUFFLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLElBQUksR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDekUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUFBLENBQUM7SUFDRixFQUFFLENBQUEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDaEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUN2RSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQUEsQ0FBQztJQUNGLEVBQUUsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNoQixJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFBQSxDQUFDO0lBQ0YscUNBQXFDO0lBQ3JDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sVUFBVSxzQkFBc0IsYUFBYSxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDN0YsY0FBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFRixJQUFJLEtBQUssR0FBRyxDQUFDLFVBQWlCLEVBQUUsYUFBb0IsRUFBRSxhQUFhO0FBRW5FLENBQUMsQ0FBQTtBQUVELElBQUksSUFBSSxHQUFHLENBQUMsVUFBVTtJQUNsQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNqQixFQUFFLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLElBQUksR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDMUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUFBLENBQUM7SUFDRixzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxVQUFVLG1CQUFtQixDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUYsSUFBSSxNQUFNLEdBQUcsQ0FBQyxVQUFpQjtJQUMzQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLEVBQUUsQ0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBLENBQUM7UUFDcEMsSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUM1RSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQUEsQ0FBQztJQUNGLDhCQUE4QjtBQUNsQyxDQUFDLENBQUE7QUFFVSxRQUFBLE1BQU0sR0FBRztJQUNoQixHQUFHLEVBQUUsR0FBRztJQUNSLElBQUksRUFBRSxJQUFJO0lBQ1YsTUFBTSxFQUFFLE1BQU07Q0FDakIsQ0FBQSJ9 | ||||
							
								
								
									
										3
									
								
								dist/smartgit.status.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/smartgit.status.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| /// <reference types="q" /> | ||||
| import * as plugins from "./smartgit.plugins"; | ||||
| export declare let status: (dirPathArg: string) => plugins.Q.Promise<{}>; | ||||
							
								
								
									
										18
									
								
								dist/smartgit.status.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								dist/smartgit.status.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,18 +0,0 @@ | ||||
| "use strict"; | ||||
| const plugins = require("./smartgit.plugins"); | ||||
| const helpers = require("./smartgit.helpers"); | ||||
| exports.status = (dirPathArg) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if (!helpers.isGitDirectory(dirPathArg)) { | ||||
|         let err = new Error("smartgit.status expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     } | ||||
|     ; | ||||
|     // if everything seems allright proceed | ||||
|     plugins.shelljs.exec(`(cd ${dirPathArg} && git status)`); | ||||
|     done.resolve(); | ||||
|     return done.promise; | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRnaXQuc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRnaXQuc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw4Q0FBOEM7QUFDOUMsOENBQThDO0FBRW5DLFFBQUEsTUFBTSxHQUFHLENBQUMsVUFBaUI7SUFDbEMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixFQUFFLENBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQSxDQUFDO1FBQ3BDLElBQUksR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDckUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUFBLENBQUM7SUFDRix1Q0FBdUM7SUFDdkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxVQUFVLGlCQUFpQixDQUFDLENBQUM7SUFDekQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDIn0= | ||||
| @@ -1,7 +1,7 @@ | ||||
| { | ||||
|   "name": "smartgit", | ||||
|   "version": "0.1.10", | ||||
|   "description": "an easy wrapper for git", | ||||
|   "description": "smart git wrapper for node", | ||||
|   "main": "dist/index.js", | ||||
|   "typings": "dist/index.d.ts", | ||||
|   "scripts": { | ||||
|   | ||||
							
								
								
									
										2
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								test/test.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1 +1 @@ | ||||
| import "typings-test"; | ||||
| import 'typings-test'; | ||||
|   | ||||
							
								
								
									
										113
									
								
								test/test.js
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								test/test.js
									
									
									
									
									
								
							| @@ -1,92 +1,79 @@ | ||||
| "use strict"; | ||||
| require("typings-test"); | ||||
| let shelljs = require("shelljs"); | ||||
| let shelljs = require('shelljs'); | ||||
| const path = require("path"); | ||||
| const should = require("should"); | ||||
| const smartgit = require("../dist/index"); | ||||
| let paths = { | ||||
|     temp: path.resolve("./test/temp/"), | ||||
|     temp2: path.resolve("./test/temp2/"), | ||||
|     temp3: path.resolve("./test/temp3"), | ||||
|     temp4: path.resolve("./test/temp4"), | ||||
|     noGit: path.resolve("./test/") | ||||
|     temp: path.resolve('./test/temp/'), | ||||
|     temp2: path.resolve('./test/temp2/'), | ||||
|     temp3: path.resolve('./test/temp3'), | ||||
|     temp4: path.resolve('./test/temp4'), | ||||
|     noGit: path.resolve('./test/') | ||||
| }; | ||||
| describe("smartgit", function () { | ||||
|     describe(".clone", function () { | ||||
|         it("should clone a repository using ssh and sshkey", function (done) { | ||||
| describe('smartgit', function () { | ||||
|     let testGitRepo; | ||||
|     let testGitRepoCloned; | ||||
|     let testGitRepoInit; | ||||
|     describe('instance', function () { | ||||
|         it('should create a valid new instance from path', function () { | ||||
|             testGitRepo = new smartgit.GitRepo('path.temp'); | ||||
|             should(testGitRepo).be.instanceOf(smartgit.GitRepo); | ||||
|         }); | ||||
|         it('should clone a repository using ssh and sshkey', function (done) { | ||||
|             this.timeout(40000); | ||||
|             smartgit.clone({ | ||||
|                 from: "git@gitlab.com:sandboxzone/sandbox-testrepo.git", | ||||
|                 to: paths.temp | ||||
|             }).then(function () { | ||||
|             smartgit.createRepoFromClone('git@gitlab.com:sandboxzone/sandbox-testrepo.git', paths.temp) | ||||
|                 .then((gitRepo) => { | ||||
|                 should(gitRepo).be.instanceOf(smartgit.GitRepo); | ||||
|                 done(); | ||||
|             }).catch(err => { | ||||
|                 throw err; | ||||
|             }); | ||||
|         }); | ||||
|         it("should clone a repository using https", function (done) { | ||||
|         it('should clone a repository using https', function (done) { | ||||
|             this.timeout(40000); | ||||
|             smartgit.clone({ | ||||
|                 from: "https://gitlab.com/sandboxzone/sandbox-testrepo.git", | ||||
|                 to: paths.temp2 | ||||
|             }).then(function () { | ||||
|             smartgit.createRepoFromClone('https://gitlab.com/sandboxzone/sandbox-testrepo.git', paths.temp2) | ||||
|                 .then((gitRepo) => { | ||||
|                 should(gitRepo).be.instanceOf(smartgit.GitRepo); | ||||
|                 done(); | ||||
|             }).catch(err => { | ||||
|                 throw err; | ||||
|             }); | ||||
|         }); | ||||
|     }); | ||||
|     describe(".add", function () { | ||||
|         it("should error for noGit", function () { | ||||
|             smartgit.add.addAll(paths.noGit); | ||||
|         }); | ||||
|         it("should add a file to an existing repository", function () { | ||||
|     describe('.add', function () { | ||||
|         it('should add a file to an existing repository', function () { | ||||
|             shelljs.exec(`(cd ${paths.temp} && cp ../test.js .)`); | ||||
|             smartgit.add.addAll(paths.temp); | ||||
|             testGitRepo.addAll(paths.temp); | ||||
|         }); | ||||
|     }); | ||||
|     describe("commit", function () { | ||||
|         it("should error for noGit", function () { | ||||
|             smartgit.commit(paths.noGit, "some commit message"); | ||||
|         }); | ||||
|         it("should commit a new file to an existing repository", function () { | ||||
|             smartgit.commit(paths.temp, "added a new file"); | ||||
|     describe('commit', function () { | ||||
|         it('should commit a new file to an existing repository', function () { | ||||
|             testGitRepo.commit('added a new file'); | ||||
|         }); | ||||
|     }); | ||||
|     describe("init", function () { | ||||
|         it("should error for noGit", function () { | ||||
|             smartgit.init(paths.noGit); | ||||
|         }); | ||||
|         it("should init a new git", function () { | ||||
|             smartgit.init(paths.temp3); | ||||
|         }); | ||||
|     }); | ||||
|     describe("pull", function () { | ||||
|     describe('pull', function () { | ||||
|         this.timeout(40000); | ||||
|         it("should error for noGit", function () { | ||||
|             smartgit.pull(paths.noGit); | ||||
|         }); | ||||
|         it("should pull from origin", function () { | ||||
|             smartgit.pull(paths.temp); | ||||
|         it('should pull from origin', function (done) { | ||||
|             testGitRepo.pull() | ||||
|                 .then(() => { | ||||
|                 done(); | ||||
|             }); | ||||
|         }); | ||||
|     }); | ||||
|     describe("push", function () { | ||||
|     describe('push', function () { | ||||
|         this.timeout(40000); | ||||
|         it("should error for noGit", function () { | ||||
|             smartgit.push(paths.noGit); | ||||
|         }); | ||||
|         it("should push to origin", function () { | ||||
|             smartgit.push(paths.temp, "origin", "master"); | ||||
|         it('should push to origin', function (done) { | ||||
|             testGitRepo.push('origin', 'master') | ||||
|                 .then(() => { | ||||
|                 done(); | ||||
|             }); | ||||
|         }); | ||||
|     }); | ||||
|     describe("remote", function () { | ||||
|         it("should error for noGit", function () { | ||||
|             smartgit.remote.add(paths.noGit, null, null); | ||||
|         }); | ||||
|         it("should error for no remote name", function () { | ||||
|             smartgit.remote.add(paths.temp, null, null); | ||||
|         }); | ||||
|         it("should error for no remote link", function () { | ||||
|             smartgit.remote.add(paths.temp, "origin", null); | ||||
|         }); | ||||
|         it("should add a remote", function () { | ||||
|             smartgit.remote.add(paths.temp, "origin2", "https://github.com/pushrocks/somerepo"); | ||||
|     describe('remote', function () { | ||||
|         it('should add a remote', function () { | ||||
|             testGitRepo.remoteAdd('origin2', 'https://github.com/pushrocks/somerepo'); | ||||
|         }); | ||||
|     }); | ||||
| }); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUVyQixJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDakMsNkJBQThCO0FBRzlCLDBDQUEyQztBQUMzQyxJQUFJLEtBQUssR0FBRztJQUNSLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUNsQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7SUFDcEMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO0lBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7Q0FDakMsQ0FBQTtBQUVELFFBQVEsQ0FBQyxVQUFVLEVBQUM7SUFDaEIsUUFBUSxDQUFDLFFBQVEsRUFBQztRQUNkLEVBQUUsQ0FBQyxnREFBZ0QsRUFBQyxVQUFTLElBQUk7WUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQixRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUNYLElBQUksRUFBQyxpREFBaUQ7Z0JBQ3RELEVBQUUsRUFBQyxLQUFLLENBQUMsSUFBSTthQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNKLElBQUksRUFBRSxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyx1Q0FBdUMsRUFBQyxVQUFTLElBQUk7WUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQixRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUNYLElBQUksRUFBQyxxREFBcUQ7Z0JBQzFELEVBQUUsRUFBQyxLQUFLLENBQUMsS0FBSzthQUNqQixD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 | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUVyQixJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDaEMsNkJBQTZCO0FBQzdCLGlDQUFnQztBQUVoQywwQ0FBMEM7QUFDMUMsSUFBSSxLQUFLLEdBQUc7SUFDUixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0NBQ2pDLENBQUE7QUFFRCxRQUFRLENBQUMsVUFBVSxFQUFFO0lBQ2pCLElBQUksV0FBNkIsQ0FBQTtJQUNqQyxJQUFJLGlCQUFtQyxDQUFBO0lBQ3ZDLElBQUksZUFBaUMsQ0FBQTtJQUNyQyxRQUFRLENBQUMsVUFBVSxFQUFFO1FBQ2pCLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRTtZQUMvQyxXQUFXLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQy9DLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxVQUFVLElBQUk7WUFDL0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNuQixRQUFRLENBQUMsbUJBQW1CLENBQUMsaURBQWlELEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQztpQkFDdEYsSUFBSSxD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 | ||||
							
								
								
									
										152
									
								
								test/test.ts
									
									
									
									
									
								
							
							
						
						
									
										152
									
								
								test/test.ts
									
									
									
									
									
								
							| @@ -1,94 +1,80 @@ | ||||
| import "typings-test" | ||||
| import beautylog = require("beautylog"); | ||||
| let shelljs = require("shelljs"); | ||||
| import path = require("path"); | ||||
| import * as should from "should" | ||||
| import 'typings-test' | ||||
| import beautylog = require('beautylog') | ||||
| let shelljs = require('shelljs') | ||||
| import path = require('path') | ||||
| import * as should from 'should' | ||||
|  | ||||
| import smartgit = require("../dist/index"); | ||||
| import smartgit = require('../dist/index') | ||||
| let paths = { | ||||
|     temp: path.resolve("./test/temp/"), | ||||
|     temp2: path.resolve("./test/temp2/"), | ||||
|     temp3: path.resolve("./test/temp3"), | ||||
|     temp4: path.resolve("./test/temp4"), | ||||
|     noGit: path.resolve("./test/") | ||||
|     temp: path.resolve('./test/temp/'), | ||||
|     temp2: path.resolve('./test/temp2/'), | ||||
|     temp3: path.resolve('./test/temp3'), | ||||
|     temp4: path.resolve('./test/temp4'), | ||||
|     noGit: path.resolve('./test/') | ||||
| } | ||||
|  | ||||
| describe("smartgit",function(){ | ||||
|     describe(".clone",function(){ | ||||
|         it("should clone a repository using ssh and sshkey",function(done){ | ||||
|             this.timeout(40000); | ||||
|             smartgit.clone({ | ||||
|                 from:"git@gitlab.com:sandboxzone/sandbox-testrepo.git", | ||||
|                 to:paths.temp | ||||
|             }).then(function(){ | ||||
|                 done(); | ||||
|             }); | ||||
|         }); | ||||
|         it("should clone a repository using https",function(done){ | ||||
|             this.timeout(40000); | ||||
|             smartgit.clone({ | ||||
|                 from:"https://gitlab.com/sandboxzone/sandbox-testrepo.git", | ||||
|                 to:paths.temp2 | ||||
|             }).then(function(){ | ||||
|                 done(); | ||||
|             }); | ||||
|         }); | ||||
|     }); | ||||
|     describe(".add",function(){ | ||||
|         it("should error for noGit",function(){ | ||||
|             smartgit.add.addAll(paths.noGit); | ||||
| describe('smartgit', function () { | ||||
|     let testGitRepo: smartgit.GitRepo | ||||
|     let testGitRepoCloned: smartgit.GitRepo | ||||
|     let testGitRepoInit: smartgit.GitRepo | ||||
|     describe('instance', function () { | ||||
|         it('should create a valid new instance from path', function () { | ||||
|             testGitRepo = new smartgit.GitRepo('path.temp') | ||||
|             should(testGitRepo).be.instanceOf(smartgit.GitRepo) | ||||
|         }) | ||||
|         it("should add a file to an existing repository",function(){ | ||||
|         it('should clone a repository using ssh and sshkey', function (done) { | ||||
|             this.timeout(40000) | ||||
|             smartgit.createRepoFromClone('git@gitlab.com:sandboxzone/sandbox-testrepo.git', paths.temp) | ||||
|                 .then((gitRepo) => { | ||||
|                     should(gitRepo).be.instanceOf(smartgit.GitRepo) | ||||
|                     done() | ||||
|                 }).catch(err => { | ||||
|                     throw err | ||||
|                 }) | ||||
|         }) | ||||
|         it('should clone a repository using https', function (done) { | ||||
|             this.timeout(40000) | ||||
|             smartgit.createRepoFromClone('https://gitlab.com/sandboxzone/sandbox-testrepo.git', paths.temp2) | ||||
|                 .then((gitRepo) => { | ||||
|                     should(gitRepo).be.instanceOf(smartgit.GitRepo) | ||||
|                     done() | ||||
|                 }).catch(err => { | ||||
|                     throw err | ||||
|                 }) | ||||
|         }) | ||||
|     }) | ||||
|     describe('.add', function () { | ||||
|         it('should add a file to an existing repository', function () { | ||||
|             shelljs.exec(`(cd ${paths.temp} && cp ../test.js .)`) | ||||
|             smartgit.add.addAll(paths.temp); | ||||
|             testGitRepo.addAll(paths.temp) | ||||
|         }) | ||||
|     }); | ||||
|     describe("commit",function(){ | ||||
|         it("should error for noGit",function(){ | ||||
|             smartgit.commit(paths.noGit,"some commit message"); | ||||
|     }) | ||||
|     describe('commit', function () { | ||||
|         it('should commit a new file to an existing repository', function () { | ||||
|             testGitRepo.commit('added a new file') | ||||
|         }) | ||||
|         it("should commit a new file to an existing repository",function(){ | ||||
|             smartgit.commit(paths.temp,"added a new file"); | ||||
|     }) | ||||
|     describe('pull', function () { | ||||
|         this.timeout(40000) | ||||
|         it('should pull from origin', function (done) { | ||||
|             testGitRepo.pull() | ||||
|                 .then(() => { | ||||
|                     done() | ||||
|                 }) | ||||
|         }) | ||||
|     }); | ||||
|     describe("init",function(){ | ||||
|         it("should error for noGit",function(){ | ||||
|             smartgit.init(paths.noGit); | ||||
|         }); | ||||
|         it("should init a new git",function(){ | ||||
|             smartgit.init(paths.temp3); | ||||
|     }) | ||||
|     describe('push', function () { | ||||
|         this.timeout(40000) | ||||
|         it('should push to origin', function (done) { | ||||
|             testGitRepo.push('origin', 'master') | ||||
|                 .then(() => { | ||||
|                     done() | ||||
|                 }) | ||||
|         }) | ||||
|     }); | ||||
|     describe("pull",function(){ | ||||
|         this.timeout(40000); | ||||
|         it("should error for noGit",function(){ | ||||
|             smartgit.pull(paths.noGit); | ||||
|         }); | ||||
|         it("should pull from origin",function(){ | ||||
|             smartgit.pull(paths.temp); | ||||
|     }) | ||||
|     describe('remote', function () { | ||||
|         it('should add a remote', function () { | ||||
|             testGitRepo.remoteAdd('origin2', 'https://github.com/pushrocks/somerepo') | ||||
|         }) | ||||
|     }); | ||||
|     describe("push",function(){ | ||||
|         this.timeout(40000); | ||||
|         it("should error for noGit",function(){ | ||||
|             smartgit.push(paths.noGit); | ||||
|         }); | ||||
|         it("should push to origin",function(){ | ||||
|             smartgit.push(paths.temp,"origin","master"); | ||||
|         }) | ||||
|     }); | ||||
|     describe("remote",function(){ | ||||
|         it("should error for noGit",function(){ | ||||
|             smartgit.remote.add(paths.noGit,null,null); | ||||
|         }); | ||||
|         it("should error for no remote name",function(){ | ||||
|             smartgit.remote.add(paths.temp,null,null); | ||||
|         }); | ||||
|         it("should error for no remote link",function(){ | ||||
|             smartgit.remote.add(paths.temp,"origin",null); | ||||
|         }); | ||||
|         it("should add a remote",function(){ | ||||
|             smartgit.remote.add(paths.temp,"origin2","https://github.com/pushrocks/somerepo"); | ||||
|         }); | ||||
|     }); | ||||
| }); | ||||
|     }) | ||||
| }) | ||||
|   | ||||
							
								
								
									
										29
									
								
								ts/index.ts
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								ts/index.ts
									
									
									
									
									
								
							| @@ -1,3 +1,30 @@ | ||||
| import * as q from 'q' | ||||
| import plugins = require("./smartgit.plugins"); | ||||
|  | ||||
| export * from './smartgit.classes.smartgit' | ||||
| import { GitRepo } from './smartgit.classes.gitrepo' | ||||
| export { | ||||
|     GitRepo | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * creates a new GitRepo Instance after cloning a project | ||||
|  */ | ||||
| export let createRepoFromClone = (fromArg: string, toArg: string) => { | ||||
|     let done = q.defer<GitRepo>() | ||||
|     plugins.smartfile.fs.ensureDir(toArg) | ||||
|     plugins.shelljs.exec(`git clone ${fromArg} ${toArg}`) | ||||
|     let newRepo = new GitRepo(toArg) | ||||
|     done.resolve(newRepo) | ||||
|     return done.promise | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * creates a new GitRepo instance after initializing a new Git Repository | ||||
|  */ | ||||
| export let createRepoFromInit = (destinationDirArg: string) => { | ||||
|     let done = q.defer<GitRepo>() | ||||
|     plugins.smartfile.fs.ensureDir(destinationDirArg) | ||||
|     plugins.shelljs.exec(`cd destinationDirArg && git init`) | ||||
|     let newRepo = new GitRepo(destinationDirArg) | ||||
|     done.resolve(newRepo) | ||||
| } | ||||
|   | ||||
| @@ -1,2 +0,0 @@ | ||||
| let shelljs = require("shelljs"); | ||||
| import beautylog = require("beautylog"); | ||||
| @@ -1,5 +0,0 @@ | ||||
| import * as plugins from "./smartgit.plugins"; | ||||
|  | ||||
| export let add = { | ||||
|     addAll: addAll | ||||
| } | ||||
| @@ -31,6 +31,49 @@ export class GitRepo { | ||||
|         return done.promise | ||||
|     }; | ||||
| 
 | ||||
|     /** | ||||
|      * add a remote to the GitRepo | ||||
|      */ | ||||
|     remoteAdd(remoteNameArg: string, remoteLinkArg: string) { | ||||
|         let done = q.defer() | ||||
|         if (!remoteNameArg) { | ||||
|             let err = new Error('smartgit.remote.add expects a valid remote name') | ||||
|             plugins.beautylog.error(err.message) | ||||
|             done.reject(err) | ||||
|             return done.promise | ||||
|         }; | ||||
|         if (!remoteLinkArg) { | ||||
|             let err = new Error() | ||||
|             plugins.beautylog.error(err.message) | ||||
|             done.reject(err) | ||||
|             return done.promise | ||||
|         }; | ||||
| 
 | ||||
|         // if everything is all right proceed
 | ||||
|         plugins.shelljs.exec(`cd ${this.repoBase} && git remote add ${remoteNameArg} ${remoteLinkArg}`) | ||||
|         done.resolve() | ||||
|         return done.promise | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * list remotes for a Gip | ||||
|      */ | ||||
|     remoteList(dirPathArg) { | ||||
|         let done = q.defer() | ||||
|         let remotes = {} | ||||
|         plugins.shelljs.exec(`cd ${dirPathArg} && git remote -v`) | ||||
|         done.resolve(remotes) | ||||
|         return done.promise | ||||
|     }; | ||||
| 
 | ||||
|     /** | ||||
|      * remove remote | ||||
|      */ | ||||
|     remoteRemove(dirPathArg: string) { | ||||
|         let done = q.defer() | ||||
|         return done.promise | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * commit all files that are currently staged | ||||
|      */ | ||||
| @@ -41,6 +84,7 @@ export class GitRepo { | ||||
|         return done.promise | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     /** | ||||
|      * pull latest changes from remote | ||||
|      */ | ||||
| @@ -71,9 +115,21 @@ export class GitRepo { | ||||
|             this.push() | ||||
|         }) | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * get the current status | ||||
|      */ | ||||
|     status() { | ||||
|         let done = q.defer() | ||||
|         plugins.shelljs.exec(`(cd ${this.repoBase} && git status)`) | ||||
|         done.resolve() | ||||
|         return done.promise | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /** | ||||
|  * creates a new GitRepo Instance after cloning a project | ||||
|  */ | ||||
| export let createRepoFromClone = (fromArg: string, toArg: string) => { | ||||
|     let done = q.defer<GitRepo>() | ||||
|     plugins.smartfile.fs.ensureDir(toArg) | ||||
| @@ -83,6 +139,9 @@ export let createRepoFromClone = (fromArg: string, toArg: string) => { | ||||
|     return done.promise | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * creates a new GitRepo instance after initializing a new Git Repository | ||||
|  */ | ||||
| export let createRepoFromInit = (destinationDirArg: string) => { | ||||
|     let done = q.defer<GitRepo>() | ||||
|     plugins.smartfile.fs.ensureDir(destinationDirArg) | ||||
| @@ -1,65 +0,0 @@ | ||||
| import * as plugins from "./smartgit.plugins"; | ||||
| import * as helpers from "./smartgit.helpers"; | ||||
|  | ||||
| let add = (dirPathArg,remoteNameArg:string, remoteLinkArg:string) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if(!helpers.isGitDirectory(dirPathArg)){ | ||||
|         let err = new Error("smartgit.remote.add expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     }; | ||||
|     if(!remoteNameArg) { | ||||
|         let err = new Error("smartgit.remote.add expects a valid remote name"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     }; | ||||
|     if(!remoteLinkArg) { | ||||
|         let err = new Error(); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     }; | ||||
|     // if everything is all right proceed | ||||
|     plugins.shelljs.exec(`cd ${dirPathArg} && git remote add ${remoteNameArg} ${remoteLinkArg}`); | ||||
|     remote.list(dirPathArg); | ||||
|     done.resolve(); | ||||
|     return done.promise; | ||||
| }; | ||||
|  | ||||
| let check = (dirPathArg:string, remoteNameArg:string, remoteLinkArg) => { | ||||
|  | ||||
| } | ||||
|  | ||||
| let list = (dirPathArg) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     let remotes = {}; | ||||
|     if(!helpers.isGitDirectory(dirPathArg)){ | ||||
|         let err = new Error("smartgit.remote.list expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     }; | ||||
|     // if  everything is all right proceed | ||||
|     plugins.shelljs.exec(`cd ${dirPathArg} && git remote -v`).stdout; | ||||
|     done.resolve(remotes); | ||||
|     return done.promise; | ||||
| }; | ||||
|  | ||||
| let remove = (dirPathArg:string) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if(!helpers.isGitDirectory(dirPathArg)){ | ||||
|         let err = new Error("smartgit.remote.remove expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     }; | ||||
|     // if everything is all right  | ||||
| } | ||||
|  | ||||
| export let remote = { | ||||
|     add: add, | ||||
|     list: list, | ||||
|     remove: remove | ||||
| } | ||||
| @@ -1,16 +0,0 @@ | ||||
| import * as plugins from "./smartgit.plugins"; | ||||
| import * as helpers from "./smartgit.helpers"; | ||||
|  | ||||
| export let status = (dirPathArg:string) => { | ||||
|     let done = plugins.Q.defer(); | ||||
|     if(!helpers.isGitDirectory(dirPathArg)){ | ||||
|         let err = new Error("smartgit.status expects a valid git directory"); | ||||
|         plugins.beautylog.error(err.message); | ||||
|         done.reject(err); | ||||
|         return done.promise; | ||||
|     }; | ||||
|     // if everything seems allright proceed | ||||
|     plugins.shelljs.exec(`(cd ${dirPathArg} && git status)`); | ||||
|     done.resolve(); | ||||
|     return done.promise; | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user