rock 0.4.0 → 0.8.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -182
- package/dist/src/bin.d.ts +2 -0
- package/dist/src/bin.d.ts.map +1 -0
- package/dist/src/bin.js +7 -0
- package/dist/src/bin.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib/adHocTemplates.d.ts +13 -0
- package/dist/src/lib/adHocTemplates.js +366 -0
- package/dist/src/lib/adHocTemplates.js.map +1 -0
- package/dist/src/lib/checkDeprecatedOptions.d.ts +1 -0
- package/dist/src/lib/checkDeprecatedOptions.d.ts.map +1 -0
- package/dist/src/lib/checkDeprecatedOptions.js +60 -0
- package/dist/src/lib/checkDeprecatedOptions.js.map +1 -0
- package/dist/src/lib/cli.d.ts +6 -0
- package/dist/src/lib/cli.d.ts.map +1 -0
- package/dist/src/lib/cli.js +101 -0
- package/dist/src/lib/cli.js.map +1 -0
- package/dist/src/lib/plugins/clean.d.ts +2 -0
- package/dist/src/lib/plugins/clean.d.ts.map +1 -0
- package/dist/src/lib/plugins/clean.js +317 -0
- package/dist/src/lib/plugins/clean.js.map +1 -0
- package/dist/src/lib/plugins/fingerprint.d.ts +12 -0
- package/dist/src/lib/plugins/fingerprint.d.ts.map +1 -0
- package/dist/src/lib/plugins/fingerprint.js +72 -0
- package/dist/src/lib/plugins/fingerprint.js.map +1 -0
- package/dist/src/lib/plugins/logConfig.d.ts +14 -0
- package/dist/src/lib/plugins/logConfig.d.ts.map +1 -0
- package/dist/src/lib/plugins/logConfig.js +54 -0
- package/dist/src/lib/plugins/logConfig.js.map +1 -0
- package/dist/src/lib/plugins/remoteCache.d.ts +2 -0
- package/dist/src/lib/plugins/remoteCache.d.ts.map +1 -0
- package/dist/src/lib/plugins/remoteCache.js +335 -0
- package/dist/src/lib/plugins/remoteCache.js.map +1 -0
- package/dist/src/lib/plugins/templateIndexHtml.d.ts +5 -0
- package/dist/src/lib/plugins/templateIndexHtml.js +189 -0
- package/dist/src/lib/plugins/templateIndexHtml.js.map +1 -0
- package/dist/src/lib/plugins/templateManifestPlist.d.ts +8 -0
- package/dist/src/lib/plugins/templateManifestPlist.js +36 -0
- package/dist/src/lib/plugins/templateManifestPlist.js.map +1 -0
- package/package.json +31 -50
- package/.npmignore +0 -1
- package/.travis.yml +0 -4
- package/CHANGELOG.md +0 -61
- package/LICENSE +0 -15
- package/bin/rock +0 -43
- package/docs/predefined-tokens.md +0 -31
- package/lib/rock.js +0 -213
- package/lib/tweezers.js +0 -37
- package/lib/util.js +0 -9
- package/test/mocha.opts +0 -3
- package/test/resources/expect/myapp/LICENSE +0 -15
- package/test/resources/expect/myapp/README.md +0 -17
- package/test/resources/expect/myapp/ignore_this/READTHIS.md +0 -1
- package/test/resources/expect/myapp/lib/cool_module.js +0 -4
- package/test/resources/expect/myapp/test/cool_module.test.js +0 -4
- package/test/resources/rock.conf.json +0 -3
- package/test/resources/rocks/date.txt +0 -1
- package/test/resources/rocks/literal-alt.txt +0 -1
- package/test/resources/rocks/literal.txt +0 -1
- package/test/resources/rocks/node-lib/.rock/rock.json +0 -9
- package/test/resources/rocks/node-lib/.rock/scripts/bye.js +0 -1
- package/test/resources/rocks/node-lib/.rock/scripts/hi.sh +0 -3
- package/test/resources/rocks/node-lib/LICENSE +0 -15
- package/test/resources/rocks/node-lib/README.md +0 -17
- package/test/resources/rocks/node-lib/ignore_this/READTHIS.md +0 -1
- package/test/resources/rocks/node-lib/lib/{{project-name}}.js +0 -4
- package/test/resources/rocks/node-lib/test/{{project-name}}.test.js +0 -4
- package/test/resources/rocks/node-lib-tmpl/.rock/rock.json +0 -13
- package/test/resources/rocks/node-lib-tmpl/.rock/scripts/bye.js +0 -1
- package/test/resources/rocks/node-lib-tmpl/.rock/scripts/hi.sh +0 -3
- package/test/resources/rocks/node-lib-tmpl/LICENSE +0 -15
- package/test/resources/rocks/node-lib-tmpl/README.md +0 -17
- package/test/resources/rocks/node-lib-tmpl/ignore_this/READTHIS.md +0 -1
- package/test/resources/rocks/node-lib-tmpl/lib/@@project-name@@.js +0 -4
- package/test/resources/rocks/node-lib-tmpl/test/@@project-name@@.test.js +0 -4
- package/test/rock-bin.test.js +0 -73
- package/test/rock-dload-github.test.js +0 -41
- package/test/rock-file.test.js +0 -47
- package/test/rock.predefined-locals.js +0 -52
- package/test/rock.test.js +0 -78
|
@@ -1 +0,0 @@
|
|
|
1
|
-
console.log('ROCK SCRIPT: bye');
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
(The MIT License)
|
|
2
|
-
|
|
3
|
-
Copyright (c) @@author@@
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
|
|
6
|
-
(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
|
|
7
|
-
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
furnished to do so, subject to the following conditions:
|
|
9
|
-
|
|
10
|
-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
11
|
-
|
|
12
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
|
13
|
-
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
|
|
14
|
-
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
15
|
-
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
This should not have {{author}} populated.
|
package/test/rock-bin.test.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/* eslint-env mocha */
|
|
2
|
-
var P = require('autoresolve')
|
|
3
|
-
var suppose = require('suppose')
|
|
4
|
-
var path = require('path')
|
|
5
|
-
var fs = require('fs')
|
|
6
|
-
var testutil = require('testutil')
|
|
7
|
-
require('terst')
|
|
8
|
-
|
|
9
|
-
var ROCK_CMD = P('bin/rock')
|
|
10
|
-
var TEST_PATH = null
|
|
11
|
-
var ROCK_CONF = P('test/resources/rock.conf.json')
|
|
12
|
-
var testRockPath = P('test/resources/rocks/node-lib')
|
|
13
|
-
|
|
14
|
-
function AFE (file1, file2) {
|
|
15
|
-
T(fs.readFileSync(file1).toString() === fs.readFileSync(file2).toString())
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
describe('rock-bin', function () {
|
|
19
|
-
beforeEach(function () {
|
|
20
|
-
TEST_PATH = testutil.createTestDir('rock')
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
it('should generate a basic project', function (done) {
|
|
24
|
-
var testPath = path.join(TEST_PATH, 'exec_from_cmd')
|
|
25
|
-
var appName = 'myapp'
|
|
26
|
-
var projectName = 'cool_module'
|
|
27
|
-
var rockGitDir = path.join(testRockPath, '.git')
|
|
28
|
-
var cwd = process.cwd()
|
|
29
|
-
|
|
30
|
-
// Make test directory:
|
|
31
|
-
fs.mkdir(testPath, executeRock)
|
|
32
|
-
function executeRock () {
|
|
33
|
-
process.chdir(cwd)
|
|
34
|
-
|
|
35
|
-
process.chdir(testPath)
|
|
36
|
-
suppose(ROCK_CMD, [appName, '-c', ROCK_CONF, '-r', P('test/resources/rocks/node-lib')])
|
|
37
|
-
// .debug(process.stdout)
|
|
38
|
-
.when('author: ').respond('JP Richardson\n')
|
|
39
|
-
.when('email: ').respond('jprichardson@gmail.com\n')
|
|
40
|
-
.when('project-description: ').respond('A cool test for a sweet library.\n')
|
|
41
|
-
.when('project-name: ').respond(projectName + '\n')
|
|
42
|
-
.on('error', done)
|
|
43
|
-
.end(verifyResults)
|
|
44
|
-
}
|
|
45
|
-
function verifyResults (code) {
|
|
46
|
-
T(code === 0)
|
|
47
|
-
|
|
48
|
-
var outDir = path.join(path.join(testPath, appName))
|
|
49
|
-
var expectDir = P('test/resources/expect/' + appName)
|
|
50
|
-
|
|
51
|
-
function AF (file) {
|
|
52
|
-
var file1 = path.join(outDir, file)
|
|
53
|
-
var file2 = path.join(expectDir, file)
|
|
54
|
-
AFE(file1, file2)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (fs.existsSync(rockGitDir)) fs.removeSync(rockGitDir)
|
|
58
|
-
|
|
59
|
-
T(fs.existsSync(outDir))
|
|
60
|
-
|
|
61
|
-
AF('LICENSE')
|
|
62
|
-
AF('README.md')
|
|
63
|
-
AF('lib/' + projectName + '.js')
|
|
64
|
-
AF('test/' + projectName + '.test.js')
|
|
65
|
-
AF('ignore_this/READTHIS.md')
|
|
66
|
-
|
|
67
|
-
T(!fs.existsSync(path.join(outDir, '.git')))
|
|
68
|
-
T(!fs.existsSync(path.join(outDir, '.rock')))
|
|
69
|
-
|
|
70
|
-
done()
|
|
71
|
-
}
|
|
72
|
-
})
|
|
73
|
-
})
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/* eslint-env mocha */
|
|
2
|
-
var testutil = require('testutil')
|
|
3
|
-
var rock = require('../lib/rock')
|
|
4
|
-
var fs = require('fs')
|
|
5
|
-
var path = require('path')
|
|
6
|
-
require('terst')
|
|
7
|
-
|
|
8
|
-
var TEST_DIR = ''
|
|
9
|
-
|
|
10
|
-
describe('rock', function () {
|
|
11
|
-
beforeEach(function () {
|
|
12
|
-
TEST_DIR = testutil.createTestDir('rock')
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
describe('+ fetchRepo()', function () {
|
|
16
|
-
describe('> when rock is an absolute Github HTTP repo', function () {
|
|
17
|
-
it('should download the files and create the rock', function () {
|
|
18
|
-
var repo = 'https://github.com/rocktemplates/rock-test'
|
|
19
|
-
return GITHUB_TEST(repo)
|
|
20
|
-
})
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
describe('> when rock is a relative Github HTTP repo', function () {
|
|
24
|
-
it('should download the files and create the rock', function () {
|
|
25
|
-
var repo = 'rocktemplates/rock-test'
|
|
26
|
-
return GITHUB_TEST(repo)
|
|
27
|
-
})
|
|
28
|
-
})
|
|
29
|
-
})
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
function GITHUB_TEST (repo) {
|
|
33
|
-
var templateValues = {
|
|
34
|
-
name: 'John'
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return rock.fetchRepo(TEST_DIR, repo, {templateValues: templateValues})
|
|
38
|
-
.then(function () {
|
|
39
|
-
T(fs.readFileSync(path.join(TEST_DIR, 'test.txt'), 'utf8') === 'Hello John!\n')
|
|
40
|
-
})
|
|
41
|
-
}
|
package/test/rock-file.test.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/* eslint-env mocha */
|
|
2
|
-
var P = require('autoresolve')
|
|
3
|
-
var path = require('path')
|
|
4
|
-
var fs = require('fs')
|
|
5
|
-
var rock = require(P('lib/rock'))
|
|
6
|
-
var testutil = require('testutil')
|
|
7
|
-
var nock = require('nock')
|
|
8
|
-
require('terst')
|
|
9
|
-
|
|
10
|
-
var TEST_DIR = null
|
|
11
|
-
|
|
12
|
-
var TMPL = 'Hi, @@author@@ is going to build:\n@@project-name@@.'
|
|
13
|
-
var TMPL_E = 'Hi, JP is going to build:\nRock.'
|
|
14
|
-
|
|
15
|
-
describe('rock', function () {
|
|
16
|
-
beforeEach(function () {
|
|
17
|
-
TEST_DIR = testutil.createTestDir('rock')
|
|
18
|
-
TEST_DIR = path.join(TEST_DIR, 'fetch-file')
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
describe('+ fetchFile()', function () {
|
|
22
|
-
describe('> when change open and closing templates', function () {
|
|
23
|
-
it('should generate a basic project', function () {
|
|
24
|
-
return TEST()
|
|
25
|
-
})
|
|
26
|
-
})
|
|
27
|
-
})
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
function TEST () {
|
|
31
|
-
var file = path.join(TEST_DIR, 'info.txt')
|
|
32
|
-
var remote = 'http://localhost/data.txt'
|
|
33
|
-
|
|
34
|
-
nock('http://localhost')
|
|
35
|
-
.get('/data.txt')
|
|
36
|
-
.reply(200, TMPL, {'Content-Type': 'text/plain'})
|
|
37
|
-
|
|
38
|
-
var templateValues = {
|
|
39
|
-
'author': 'JP',
|
|
40
|
-
'project-name': 'Rock'
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return rock.fetchFile(file, remote, {templateValues: templateValues, tokens: {open: '@@', close: '@@'}})
|
|
44
|
-
.then(function () {
|
|
45
|
-
EQ(TMPL_E, fs.readFileSync(file, 'utf8'))
|
|
46
|
-
})
|
|
47
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/* eslint-env mocha */
|
|
2
|
-
var P = require('autoresolve')
|
|
3
|
-
var path = require('path')
|
|
4
|
-
var fs = require('fs')
|
|
5
|
-
var rock = require(P('lib/rock'))
|
|
6
|
-
var testutil = require('testutil')
|
|
7
|
-
require('terst')
|
|
8
|
-
|
|
9
|
-
var TEST_DIR = null
|
|
10
|
-
|
|
11
|
-
describe('rock', function () {
|
|
12
|
-
beforeEach(function () {
|
|
13
|
-
TEST_DIR = testutil.createTestDir('rock')
|
|
14
|
-
})
|
|
15
|
-
describe('date tokens', function () {
|
|
16
|
-
it('should generate the current date', function () {
|
|
17
|
-
var file = path.join(TEST_DIR, 'date.txt')
|
|
18
|
-
var date = {actual: new Date()}
|
|
19
|
-
date.year = date.actual.getFullYear()
|
|
20
|
-
date.month = ('00' + (date.actual.getMonth() + 1)).slice(-2)
|
|
21
|
-
date.day = ('00' + date.actual.getDate()).slice(-2)
|
|
22
|
-
var expected = date.year + '-' + date.month + '-' + date.day + '\n'
|
|
23
|
-
return rock.fetchFile(file, P('test/resources/rocks/date.txt'))
|
|
24
|
-
.then(function () {
|
|
25
|
-
EQ(expected, fs.readFileSync(file, 'utf8'))
|
|
26
|
-
})
|
|
27
|
-
})
|
|
28
|
-
})
|
|
29
|
-
describe('literal', function () {
|
|
30
|
-
it('should work with default delimiter', function () {
|
|
31
|
-
var file = path.join(TEST_DIR, 'literal.txt')
|
|
32
|
-
var expected = '{{\n'
|
|
33
|
-
return rock.fetchFile(file, P('test/resources/rocks/literal.txt'))
|
|
34
|
-
.then(function () {
|
|
35
|
-
EQ(expected, fs.readFileSync(file, 'utf8'))
|
|
36
|
-
})
|
|
37
|
-
})
|
|
38
|
-
it('should work with alternate delimiter', function () {
|
|
39
|
-
var file = path.join(TEST_DIR, 'literal-alt.txt')
|
|
40
|
-
var expected = '@@\n'
|
|
41
|
-
return rock.fetchFile(file, P('test/resources/rocks/literal-alt.txt'), {
|
|
42
|
-
tokens: {
|
|
43
|
-
open: '@@',
|
|
44
|
-
close: '@@'
|
|
45
|
-
}
|
|
46
|
-
})
|
|
47
|
-
.then(function () {
|
|
48
|
-
EQ(expected, fs.readFileSync(file, 'utf8'))
|
|
49
|
-
})
|
|
50
|
-
})
|
|
51
|
-
})
|
|
52
|
-
})
|
package/test/rock.test.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/* eslint-env mocha */
|
|
2
|
-
var assert = require('assert')
|
|
3
|
-
var P = require('autoresolve')
|
|
4
|
-
var path = require('path')
|
|
5
|
-
var fs = require('fs')
|
|
6
|
-
var rock = require(P('lib/rock'))
|
|
7
|
-
var testutil = require('testutil')
|
|
8
|
-
require('terst')
|
|
9
|
-
|
|
10
|
-
var TEST_PATH = ''
|
|
11
|
-
|
|
12
|
-
var rockRepo1 = P('test/resources/rocks/node-lib')
|
|
13
|
-
var rockRepo2 = P('test/resources/rocks/node-lib-tmpl')
|
|
14
|
-
|
|
15
|
-
function AFE (file1, file2) {
|
|
16
|
-
EQ(fs.readFileSync(file1).toString(), fs.readFileSync(file2).toString())
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
describe('rock', function () {
|
|
20
|
-
beforeEach(function (done) {
|
|
21
|
-
TEST_PATH = testutil.createTestDir('rock')
|
|
22
|
-
done()
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
describe('+ fetchRepo()', function () {
|
|
26
|
-
describe('> when default settings', function () {
|
|
27
|
-
it('should generate a basic project', function () {
|
|
28
|
-
return TEST(rockRepo1)
|
|
29
|
-
})
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
describe('> when change open and closing templates', function () {
|
|
33
|
-
it('should generate a basic project', function () {
|
|
34
|
-
return TEST(rockRepo2)
|
|
35
|
-
})
|
|
36
|
-
})
|
|
37
|
-
})
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
function TEST (rockRepo) {
|
|
41
|
-
var testPath = path.join(TEST_PATH, 'create')
|
|
42
|
-
var appName = 'myapp'
|
|
43
|
-
var projectName = 'cool_module'
|
|
44
|
-
|
|
45
|
-
// Make test dir:
|
|
46
|
-
fs.mkdirSync(testPath)
|
|
47
|
-
process.chdir(testPath)
|
|
48
|
-
|
|
49
|
-
var templateValues = {
|
|
50
|
-
'author': 'JP Richardson',
|
|
51
|
-
'email': 'jprichardson@gmail.com',
|
|
52
|
-
'project-description': 'A cool test for a sweet library.',
|
|
53
|
-
'project-name': 'cool_module'
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return rock.fetchRepo(appName, rockRepo, {templateValues: templateValues})
|
|
57
|
-
.then(function () {
|
|
58
|
-
var outDir = path.join(path.join(testPath, appName))
|
|
59
|
-
var expectDir = P('test/resources/expect/' + appName)
|
|
60
|
-
|
|
61
|
-
function AF (file) {
|
|
62
|
-
var file1 = path.join(outDir, file)
|
|
63
|
-
var file2 = path.join(expectDir, file)
|
|
64
|
-
AFE(file1, file2)
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
assert(fs.existsSync(outDir))
|
|
68
|
-
|
|
69
|
-
AF('LICENSE')
|
|
70
|
-
AF('README.md')
|
|
71
|
-
AF('lib/' + projectName + '.js')
|
|
72
|
-
AF('test/' + projectName + '.test.js')
|
|
73
|
-
AF('ignore_this/READTHIS.md')
|
|
74
|
-
|
|
75
|
-
assert(!fs.existsSync(path.join(outDir, '.git')))
|
|
76
|
-
assert(!fs.existsSync(path.join(outDir, '.rock')))
|
|
77
|
-
})
|
|
78
|
-
}
|