Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/leny/tankipas
Compute approximate development time spent on a project, using logs from version control system.
https://github.com/leny/tankipas
Last synced: 7 days ago
JSON representation
Compute approximate development time spent on a project, using logs from version control system.
- Host: GitHub
- URL: https://github.com/leny/tankipas
- Owner: leny
- License: mit
- Created: 2014-07-02T15:11:16.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2019-10-22T18:51:04.000Z (about 5 years ago)
- Last Synced: 2024-08-08T16:32:19.425Z (3 months ago)
- Language: CoffeeScript
- Homepage:
- Size: 24.4 KB
- Stars: 12
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
Awesome Lists containing this project
README
# tankipas
[![NPM version](http://img.shields.io/npm/v/tankipas.svg)](https://www.npmjs.org/package/tankipas) ![Dependency Status](https://david-dm.org/leny/tankipas.svg) ![Downloads counter](http://img.shields.io/npm/dm/tankipas.svg) [![No Maintenance Intended](http://unmaintained.tech/badge.svg)](http://unmaintained.tech/)
> Compute approximate development time spent on a project, using logs from version control system.
* * *
## How it works ?
**tankipas**, according to the options used, read the logs of the current working directory's version control system and computes the difference between each commit timestamp.
As the resulting time **can't** reflect the reality, **tankipas** use a `gap` option, a number of minutes above wich the time between two commits is ignored.## Usage as node.js module
### Installation
To use **tankipas** as a node.js module, install it first to your project.
npm install --save tankipas
### UsageUsing **tankipas** is simple, after require it :
tankipas = require( "tankipas" );
tankipas( ".", {}, function( oError, iTotal ) {
// do awesome things here.
} );
### Signaturetankipas( sRepositoryPath [, oOptions [, fCallback ] ] )
#### Arguments- `sRepoPath` is the path to the repository to analyse.
- `oOptions` is an object which can contain the following properties :
- `system`: force the version system to analyse (by default, try to guess)
- `gap`: number of minutes above wich the time between two commits is ignored in the total (default to `120`)
- `user`: use only the commits of the given user
- `commit`: compute the result since the given commit
- `branch`: use only the commits of the given branch
- `fCallback` is the callback function, which returns two arguments :
- `oError`: if an error occurs during the process
- `iTotal`: the total of time spent on the project, in seconds
## Usage as *command-line tool*### Installation
To use **tankipas** as a command-line tool, it is preferable to install it globally.
(sudo) npm install -g tankipas
### Usage
Using **tankipas** is simple, from inside a `git` or `mercurial` repo:
tankipas [options]
Options:-h, --help output usage information
-V, --version output the version number
-s, --system force the version system to analyse (by default, try to guess)
-g, --gap number of minutes above wich the time between two commits is ignored in the total.
-u, --user use only the commits of the given user.
-c, --commit compute the result since the given commit.
-b, --branch use only the commits of the given branch.
-r, --raw show raw result, as number of seconds spent on the project.
#### Options##### system (`-s`,`--system `)
Force the version control system to use for the current directory's analysis.
By default, **tankipas** will try to guess the current version control system.For now, **tankipas** supports `git` and `mercurial` systems.
##### gap (`-g`,`--gap `)
**tankipas** compute his result by sum all the time between commits. As you can't pretend working 24h/day (*I tried, it's hard, after 3 days*), **tankipas** ignore the time between commits separed by more than the given `gap` option. By default, the gap is `120` (minutes).
##### user (`-u`,`--user `)
If you work as a team, you can be interested to filters the commits and compute the time of only one user, which you can precise with the `user` option.
##### commit (`-c`,`--commit `)
The result will be computed since the given commit reference, instead of the beginning of the project.
##### branch (`-b`,`--branch `)
You can filters the commits and compute the time of only one branch, which you can precise with the `branch` option.
##### raw (`-r`,`--raw`)
By default, **tankipas** outputs his result in a *human-readable* format. If you want to use the result with another tool, the `raw` option will output results as an amount of `seconds`.
##### help (`-h`,`--help`)
Output usage information.
##### version (`-v`,`--version`)
Output **tankipas**' version number.
## Usage as grunt plugin
Please refer to the [grunt-tankipas](https://github.com/leny/grunt-tankipas) documentation.
## ContributingIn lieu of a formal styleguide, take care to maintain the existing coding style. Lint your code using [Grunt](http://gruntjs.com/).
## Release History
* **0.4.1**: Update dependencies (*08/10/14*)
* **0.4.0**: Add `branch` option (*13/07/14*)
* **0.3.0**: Add `commit` option (*11/07/14*)
* **0.2.0**: Node module version, raw returns seconds instead of minutes (*03/07/14*)
* **0.1.1**: Fix *rounding* issue for minutes (*02/07/14*)
* **0.1.0**: Initial release (*02/07/14*)### TODO
- [x] add progress indicator
- [x] node module version
- [x] deprecate `grunt-elapsed` module and create `grunt-tankipas`
- [x] add 'since commit' option
- [x] add branch support
- [ ] add multiple users support
- [ ] add support for **svn**
- [ ] allow to give one or multiple paths## License
Copyright (c) 2014 Leny
Licensed under the MIT license.