Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
zrrrzzt committed Jul 22, 2015
1 parent 5665d91 commit b476f7b
Show file tree
Hide file tree
Showing 11 changed files with 213 additions and 5 deletions.
16 changes: 12 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# IDE
.idea

# OS X
.DS_Store

# Logs
logs
*.log
Expand All @@ -12,16 +18,18 @@ lib-cov

# Coverage directory used by tools like istanbul
coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directory
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
# Commenting this out is preferred by some people, see
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git-
node_modules

# Users Environment Variables
.lock-wscript
5 changes: 5 additions & 0 deletions .jscsrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"preset": "google",
"validateIndentation": 2,
"maximumLineLength": 80
}
19 changes: 19 additions & 0 deletions .jshintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"bitwise": true,
"curly": true,
"eqeqeq": true,
"esnext": true,
"freeze": true,
"immed": true,
"indent": 2,
"latedef": "nofunc",
"maxlen": 80,
"newcap": true,
"node": true,
"noarg": true,
"quotmark": "single",
"strict": true,
"trailing": true,
"undef": true,
"unused": true
}
7 changes: 7 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
language: node_js
node_js:
- "0.12"
- "0.10"
- "iojs"
after_success:
- npm run coveralls
39 changes: 38 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,39 @@
[![Build Status](https://travis-ci.org/zrrrzzt/generate-pincode-cli.svg?branch=master)](https://travis-ci.org/zrrrzzt/generate-pincode-cli)
[![Coverage Status](https://coveralls.io/repos/zrrrzzt/generate-pincode-cli/badge.svg?branch=master&service=github)](https://coveralls.io/github/zrrrzzt/generate-pincode-cli?branch=master)
# generate-pincode-cli
CLI for generating a random pincode

CLI for generating random pincodes.

## Installation

From npm

```sh
$ npm install generate-pincode-cli -g
```

## Usage - cli

If not supplied with a length it returns a four digit pincode.

```sh
$ pincode
```

Optionally pass in length

```sh
$ pincode <length>
```

To see version number

```sh
$ generate-pincode -v
```

To see help

```sh
$ generate-pincode -h
```
21 changes: 21 additions & 0 deletions cli.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env node
'use strict';

var gpc = require('generate-pincode');
var pkg = require('./package.json');
var getHelpText = require('./lib/getHelpText');
var pincodeLength = process.argv[2] || 4;
var argv = process.argv;

if (argv.indexOf('-h') !== -1 || argv.indexOf('--help') !== -1) {
console.log(getHelpText());
process.exit(0);
}

if (
argv.indexOf('-v') !== -1 || argv.indexOf('--version') !== -1) {
console.log(pkg.version);
process.exit(0);
}

console.log(gpc(parseInt(pincodeLength, 10)));
8 changes: 8 additions & 0 deletions lib/getHelpText.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
'use strict';

function getHelptext() {
var help = require('./helptext.json');
return help.join('\n');
}

module.exports = getHelptext;
10 changes: 10 additions & 0 deletions lib/helptext.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[
"Generates a random pincode.",
"Usage:",
" $ pincode",
"Returns a 4-digit picode",
"",
"Optional, pass in length",
" $ pincode <length>",
""
]
42 changes: 42 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"name": "generate-pincode-cli",
"description": "CLI for generating random pincodes",
"version": "1.0.0",
"license": "CC0-1.0",
"author": {
"name": "Geir Gåsodden",
"email": "geir.gasodden@pythonia.no"
},
"keywords": [
"cli",
"pin",
"pincode",
"random"
],
"repository": {
"type": "git",
"url": "http://github.com/zrrrzzt/generate-pincode-cli.git"
},
"bugs": {
"url": "http://github.com/zrrrzzt/generate-pincode-cli/issues"
},
"bin": {
"pincode": "cli.js"
},
"engines": {
"node": ">=0.12.0"
},
"scripts": {
"test": "tap --reporter=spec test/*.js",
"coverage": "tap test/*.js --coverage",
"coveralls": "tap --cov --coverage-report=lcov test/*.js && cat coverage/lcov.info | coveralls"
},
"devDependencies": {
"coveralls": "^2.11.3",
"jscs": "^1.13.1",
"tap": "^1.3.1"
},
"dependencies": {
"generate-pincode": "^2.0.3"
}
}
44 changes: 44 additions & 0 deletions test/cli-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
'use strict';

var exec = require('child_process').execFileSync;
var tap = require('tap');
var getHelpText = require('../lib/getHelpText');
var pkgVersion = require('../package.json').version;

tap.test('It returns helptext with -h flag', function helpTextWithH(test) {
var helpText = exec('./cli.js', ['-h']).toString().trim();
test.equal(helpText, getHelpText().toString().trim());
test.end();
});

tap.test('It returns helptext with --help flag', function helpTextWithH(test) {
var helpText = exec('./cli.js', ['--help']).toString().trim();
test.equal(helpText, getHelpText().toString().trim());
test.end();
});

tap.test('It returns version with -v flag', function versionWithV(test) {
var version = exec('./cli.js', ['-v']).toString().trim();
test.equal(pkgVersion, version);
test.end();
});

tap.test('It returns version with --version flag', function versionWithV(test) {
var version = exec('./cli.js', ['--version']).toString().trim();
test.equal(pkgVersion, version);
test.end();
});

tap.test('It generates a pincode with length 4 as default',
function cliDefault(test) {
var pin = exec('./cli.js').toString().trim();
test.equal(pin.length, 4);
test.end();
});

tap.test('It generates a pincode with correct length',
function cliDefault(test) {
var pin = exec('./cli.js', ['6']).toString().trim();
test.equal(pin.length, 6);
test.end();
});
7 changes: 7 additions & 0 deletions test/getHelpText-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use strict';

var tap = require('tap');
var getHelpText = require('../lib/getHelpText');
var helpText = require('../lib/helptext.json').join('\n');

tap.equal(helpText, getHelpText(), 'It returns correct helptext');

0 comments on commit b476f7b

Please sign in to comment.