UNPKG

bashprompt

Version:
156 lines (115 loc) 5.46 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: partials/git.js</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: partials/git.js</h1> <section> <article> <pre class="prettyprint source"><code>// // BEGIN LICENSE BLOCK // // The MIT License (MIT) // // Copyright (c) 2014 Raül Pérez // // Permission is hereby granted, free of charge, to any person obtaining a copy of // this software and associated documentation files (the "Software"), to deal in // the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // the Software, and to permit persons to whom the Software is furnished to do so, // subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS // FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // // END LICENSE BLOCK // var child = require('child_process'); var childsync = require('execSync'); /** * @namespace bashprompt.partials.git */ var git = {}; function getBranchName(stdout) { 'use strict'; } /** * Get the branch name of a Git repository asynchronously. * * {@link bashprompt.partials.git.branchInfo} * * @param callback {function} - Function to execute once info is retrieved. */ git.branchInfo = function (callback) { 'use strict'; var cmd = 'git status -sb --ignore-submodules'; child.exec(cmd, function (err, stdout, stderr) { // Check for errors if (err || !stdout) { return callback(err); } // Supprocess results all lines var lines = stdout.trim().split('\n'); // First line ( it contains branch name ) var status = lines.shift().trim(); // Get the branch name var matches = status.match(/^## ([A-Za-z0-9.-]+)/); if (matches) { branchInfo.name = matches[1]; } callback(branchInfo); }); }; /** * Get the branch name of a Git repository synchronously. * * {@link bashprompt.partials.git.branchInfoSync} * * @returns {branchInfo} - Current branch info. */ git.branchInfoSync = function () { 'use strict'; var cmd = 'git status -sb --ignore-submodules'; var branchInfo = childsync.exec(cmd); // Check if error code > 0. Means that has occurred an error! if (branchInfo.code>0) { return branchInfo; } // Supprocess results all lines var lines = branchInfo.stdout.trim().split('\n'); // First line ( it contains branch name ) var status = lines.shift().trim(); // Get the branch name var matches = status.match(/^## ([A-Za-z0-9.-]+)/); if (matches) { branchInfo.name = matches[1]; } return branchInfo; }; /** @module bashprompt/partials/git */ module.exports = git; </code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-bashprompt.html">bashprompt</a></li><li><a href="cli.html">bashprompt/cli</a></li><li><a href="colorize.html">bashprompt/colorize</a></li><li><a href="context.html">bashprompt/context</a></li><li><a href="cwd.html">bashprompt/partials/cwd</a></li><li><a href="git.html">bashprompt/partials/git</a></li><li><a href="hostname.html">bashprompt/partials/hostname</a></li><li><a href="shell.html">bashprompt/partials/shell</a></li><li><a href="user.html">bashprompt/partials/user</a></li><li><a href="theme.html">bashprompt/theme</a></li><li><a href="template.html">bashprompt/theme/template</a></li></ul><h3>Namespaces</h3><ul><li><a href="bashprompt.html">bashprompt</a></li><li><a href="bashprompt.cli.html">cli</a></li><li><a href="bashprompt.colorize.html">colorize</a></li><li><a href="bashprompt.context.html">context</a></li><li><a href="bashprompt.partials.html">partials</a></li><li><a href="bashprompt.partials.cwd.html">cwd</a></li><li><a href="bashprompt.partials.git.html">git</a></li><li><a href="bashprompt.partials.hostname.html">hostname</a></li><li><a href="bashprompt.partials.shell.html">shell</a></li><li><a href="bashprompt.partials.user.html">user</a></li><li><a href="bashprompt.theme.html">theme</a></li><li><a href="bashprompt.theme.template.html">template</a></li></ul> </nav> <br clear="both"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Sun Feb 23 2014 18:54:28 GMT+0100 (CET) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>