Skip to content

Commit 7bd614e

Browse files
authored
Merge pull request #17 from zeke/cleanup
Cleanup
2 parents 3e6f92b + 81be1e3 commit 7bd614e

File tree

6 files changed

+80
-121
lines changed

6 files changed

+80
-121
lines changed

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
11
language: node_js
2+
node_js:
3+
- "4"
4+
- "6"
5+
- "7"

README.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ With npm modules, most of that info can be gleaned from properties in the `packa
1717

1818
## Installation
1919

20-
Download node at [nodejs.org](http://nodejs.org) and install it, if you haven't already.
21-
2220
```sh
2321
npm i -g package-json-to-readme
2422
```
@@ -72,13 +70,6 @@ npm test
7270

7371
MIT
7472

75-
## Colophon
76-
77-
- Homepage: https://github.com/zeke/package-json-to-readme
78-
- Author: Zeke Sikelianos <zeke@sikelianos.com> (http://zeke.sikelianos.com/)
79-
- README generated by
80-
[package-json-to-readme](https://github.com/zeke/package-json-to-readme)
81-
8273
## See Also
8374

8475
- [mos](https://github.com/zkochan/mos), a pluggable module that injects content into your markdown files via hidden JavaScript snippets.

index.js

Lines changed: 32 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
#!/usr/bin/env node
2-
'use strict';
2+
'use strict'
33

4-
var hogan = require("hogan.js")
5-
var fs = require("fs")
6-
var path = require("path")
7-
var util = require("util")
4+
var hogan = require('hogan.js')
5+
var fs = require('fs')
6+
var path = require('path')
7+
var util = require('util')
88
var argv = require('yargs')
99
.usage('Usage: readme path/to/package.json')
10-
.check(function(argv) {
11-
if (!argv._.length) throw 'A path to a valid package.json is required';
12-
return true;
10+
.check(function (argv) {
11+
if (!argv._.length) throw new Error('A path to a valid package.json is required')
12+
return true
1313
})
1414
.option('r', {
1515
alias: 'travis',
@@ -19,80 +19,75 @@ var argv = require('yargs')
1919
alias: 'test',
2020
description: 'include test output in readme'
2121
})
22-
.option('n', {
23-
alias: 'no-footer',
24-
description: 'disable the promotional footer message'
25-
})
2622
.alias('t', 'tests')
2723
.help('help')
2824
.alias('h', 'help')
29-
.argv;
30-
var gh = require("github-url-to-object")
31-
var execSync = require('sync-exec');
32-
var stripAnsi = require('strip-ansi');
25+
.argv
26+
var gh = require('github-url-to-object')
27+
var execSync = require('sync-exec')
28+
var stripAnsi = require('strip-ansi')
3329

3430
var pkgPath = path.resolve(process.cwd(), argv._[0])
3531

3632
try {
3733
var pkg = require(pkgPath)
38-
} catch(e) {
39-
return console.error("Invalid JSON file: %s", pkgPath)
34+
} catch (e) {
35+
console.error('Invalid JSON file: %s', pkgPath)
36+
process.exit()
4037
}
4138

42-
pkg.private = pkg.private || pkg.license === "private" || false;
39+
pkg.private = pkg.private || pkg.license === 'private' || false
4340

4441
if (argv.travis) {
4542
if (pkg.repository && pkg.repository.url && gh(pkg.repository.url)) {
4643
pkg.travis_url = gh(pkg.repository.url).travis_url
4744
} else {
48-
return console.error("`repository.url` must be a GitHub repository URL for Travis to work")
45+
console.error('`repository.url` must be a GitHub repository URL for Travis to work')
46+
process.exit()
4947
}
5048
}
5149

5250
// Run tests and fetch output
5351
if (argv.tests || argv.test) {
5452
pkg.testOutput = stripAnsi(execSync('npm test').stdout)
55-
.replace(/\r/g, "") // remove weird newlines
56-
.replace(/\n+/g, "\n"); // remove excess newlines
53+
.replace(/\r/g, '') // remove weird newlines
54+
.replace(/\n+/g, '\n') // remove excess newlines
5755
}
5856

5957
// Look for example.js or example.sh in package.json directory
60-
["js", "sh"].forEach(function(language){
61-
62-
var exampleFile = path.resolve(path.dirname(argv._[0])) + "/example." + language;
58+
var extensions = ['js', 'sh']
59+
extensions.forEach(function (language) {
60+
var exampleFile = path.resolve(path.dirname(argv._[0])) + '/example.' + language
6361
if (fs.existsSync(exampleFile)) {
6462
pkg.usage = {
6563
language: language,
6664
content: fs.readFileSync(exampleFile).toString()
6765
}
6866

6967
// replace require('./') statement with the package name
70-
if (language === "js") {
68+
if (language === 'js') {
7169
pkg.usage.content = pkg.usage.content.replace(
7270
/require\(['"]?\.\/['"]?\)/,
73-
util.format("require(\"%s\")", pkg.name)
71+
util.format('require("%s")', pkg.name)
7472
)
7573
}
76-
7774
}
7875
})
7976

80-
// Disable generated-by footer with --no-footer
81-
pkg.footer = argv['footer'] !== false
82-
83-
var getDeps = function(deps) {
84-
return Object.keys(deps).map(function(depname){
85-
var dep = require(path.resolve(path.dirname(argv._[0])) + "/node_modules/" + depname + "/package.json")
77+
var getDeps = function (deps) {
78+
return Object.keys(deps).map(function (depname) {
79+
var dep = require(path.resolve(path.dirname(argv._[0])) + '/node_modules/' + depname + '/package.json')
8680
if (dep.repository && dep.repository.url && gh(dep.repository.url)) {
8781
dep.repository.url = gh(dep.repository.url).https_url
8882
}
8983
return dep
9084
})
9185
}
9286

93-
if (pkg.dependencies) pkg.depDetails = getDeps(pkg.dependencies);
94-
if (pkg.devDependencies) pkg.devDepDetails = getDeps(pkg.devDependencies);
87+
if (pkg.dependencies) pkg.depDetails = getDeps(pkg.dependencies)
88+
if (pkg.devDependencies) pkg.devDepDetails = getDeps(pkg.devDependencies)
9589

96-
var template = hogan.compile(fs.readFileSync(__dirname + "/template.md").toString())
90+
var templatePath = path.join(__dirname, 'template.md')
91+
var template = hogan.compile(fs.readFileSync(templatePath).toString())
9792

9893
process.stdout.write(template.render(pkg))

package.json

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@
44
"description": "Generate a README.md from package.json contents",
55
"main": "index.js",
66
"scripts": {
7-
"test": "mocha"
8-
},
9-
"repository": {
10-
"type": "git",
11-
"url": "https://github.com/zeke/package-json-to-readme"
7+
"test": "mocha && standard"
128
},
9+
"repository": "https://github.com/zeke/package-json-to-readme",
1310
"keywords": [
1411
"package.json",
1512
"readme",
@@ -19,10 +16,6 @@
1916
],
2017
"author": "Zeke Sikelianos <zeke@sikelianos.com> (http://zeke.sikelianos.com/)",
2118
"license": "MIT",
22-
"bugs": {
23-
"url": "https://github.com/zeke/package-json-to-readme/issues"
24-
},
25-
"homepage": "https://github.com/zeke/package-json-to-readme",
2619
"dependencies": {
2720
"github-url-to-object": "^1.6.0",
2821
"hogan.js": "^2.0.0",
@@ -37,6 +30,15 @@
3730
"preferGlobal": true,
3831
"devDependencies": {
3932
"mocha": "^2.1.0",
40-
"nixt": "^0.3.0"
33+
"nixt": "^0.3.0",
34+
"standard": "^8.6.0"
35+
},
36+
"standard": {
37+
"env": {
38+
"mocha": true
39+
},
40+
"ignore": [
41+
"test/fixtures"
42+
]
4143
}
4244
}

template.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
{{^private}}
66
## Installation
77

8-
Download node at [nodejs.org](http://nodejs.org) and install it, if you haven't already.
9-
108
```sh
119
{{#preferGlobal}}
1210
npm install {{name}} --global
@@ -63,7 +61,3 @@ None
6361

6462
{{license}}
6563
{{/license}}
66-
67-
{{#footer}}
68-
_Generated by [package-json-to-readme](https://github.com/zeke/package-json-to-readme)_
69-
{{/footer}}

0 commit comments

Comments
 (0)