UNPKG

tfs

Version:

NodeJS wrapper for Team Foundation Source Control CLI.

131 lines (102 loc) 6.13 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: tfs/status.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: tfs/status.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>var format = require('../utils/format'), output = require('../utils/output'), tf = require('../utils/tf'); /** * Displays information about pending changes to items * in one or more workspaces. * Or, when you use the /shelveset option, displays information * about pending changes in a shelveset. * * &lt;h5>Required Permissions:&lt;/h5> * To use the status command, you must have the Read permission * set to Allow for all specified files or folders. * * @summary Displays information about pending changes. * @see https://msdn.microsoft.com/en-us/library/9s5ae285.aspx * @module TFS Status * @version 1.4.0 * * @param {Array} itemspec File(s) and folder(s) to get status from. * If empty, equals CWD. * @param {Object} options Get command options * @param {Function} callback Function to call back once executed */ var _status = function(itemspec, options, callback) { var params = itemspec.length ? itemspec : [process.cwd()]; params = params.concat(format.options(options)); var newCallback = function(responseError, response) { if (responseError) { callback(responseError, null); return; } if (response.stdout.trim() === 'There are no pending changes.') { response.hasPendingChanges = false; response = output.response(response.stdout.trim(), response); callback(null, response); return; } var line, lineRegexp = /(.+)\r\n/g, lineStatus, lineStatusRegexp = /(.*)(add|delete|edit|rename)(.*)/, summaryRegexp = /change\(s\)/, status = { detectedChanges: [], includedChanges: [] }, statusProperty = 'includedChanges'; while ((line = lineRegexp.exec(response.stdout)) !== null) { if (line[1][0] !== '-' &amp;&amp; line[1].substr(0, 9) !== 'File name' &amp;&amp; line[1][0] !== '$' &amp;&amp; !summaryRegexp.test(line[1])) { if (line[1] === 'Detected Changes:') { statusProperty = 'detectedChanges'; } else { lineStatus = lineStatusRegexp.exec(line[1]); status[statusProperty].push({ fileName: lineStatus[1].trim(), action: lineStatus[2].trim(), filePath: lineStatus[3].trim() }); } } } response.hasPendingChanges = true; response.status = status; response = output.response('OK', response); callback(null, response); }; tf('status', params, newCallback, !!options.verbose); }; module.exports = _status; </code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-TFS%2520Add.html">TFS Add</a></li><li><a href="module-TFS%2520Checkin.html">TFS Checkin</a></li><li><a href="module-TFS%2520Checkout.html">TFS Checkout</a></li><li><a href="module-TFS%2520Get.html">TFS Get</a></li><li><a href="module-TFS%2520History.html">TFS History</a></li><li><a href="module-TFS%2520Info.html">TFS Info</a></li><li><a href="module-TFS%2520Status.html">TFS Status</a></li><li><a href="module-TFS%2520Undo.html">TFS Undo</a></li><li><a href="module-Utilities%2520Camelize.html">Utilities Camelize</a></li><li><a href="module-Utilities%2520Format.html">Utilities Format</a></li></ul><h3>Global</h3><ul><li><a href="global.html#_delete">_delete</a></li><li><a href="global.html#branch">branch</a></li><li><a href="global.html#branches">branches</a></li><li><a href="global.html#buildSettings">buildSettings</a></li><li><a href="global.html#changeset">changeset</a></li><li><a href="global.html#configure">configure</a></li><li><a href="global.html#debug">debug</a></li><li><a href="global.html#destroy">destroy</a></li><li><a href="global.html#diff">diff</a></li><li><a href="global.html#dir">dir</a></li><li><a href="global.html#fileExists">fileExists</a></li><li><a href="global.html#folderdiff">folderdiff</a></li><li><a href="global.html#format">format</a></li><li><a href="global.html#label">label</a></li><li><a href="global.html#labels">labels</a></li><li><a href="global.html#localversions">localversions</a></li><li><a href="global.html#lock">lock</a></li><li><a href="global.html#merge">merge</a></li><li><a href="global.html#merges">merges</a></li><li><a href="global.html#output">output</a></li><li><a href="global.html#permission">permission</a></li><li><a href="global.html#rename">rename</a></li><li><a href="global.html#resolve">resolve</a></li><li><a href="global.html#rollback">rollback</a></li><li><a href="global.html#setup">setup</a></li><li><a href="global.html#shelve">shelve</a></li><li><a href="global.html#shelvesets">shelvesets</a></li><li><a href="global.html#tf">tf</a></li><li><a href="global.html#tfs">tfs</a></li><li><a href="global.html#undelete">undelete</a></li><li><a href="global.html#unlabel">unlabel</a></li><li><a href="global.html#unshelve">unshelve</a></li><li><a href="global.html#view">view</a></li><li><a href="global.html#workfold">workfold</a></li><li><a href="global.html#workspace">workspace</a></li><li><a href="global.html#workspaces">workspaces</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> on Sun Mar 06 2016 00:07:41 GMT+0100 (Romance Standard Time) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>