1 | #!/usr/bin/env node
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | 'use strict'
|
8 |
|
9 | process.chdir(`${__dirname}/..`)
|
10 |
|
11 | const path = require('path')
|
12 | const fs = require('fs')
|
13 | const { runTasks } = require('ape-tasking')
|
14 | const tmplconv = require('tmplconv')
|
15 |
|
16 | const scaffold = require('../lib')
|
17 |
|
18 | let demoPkgPath = require.resolve('apeman-demo-react/package.json')
|
19 | let demoPkg = require(demoPkgPath)
|
20 | let demo = path.dirname(demoPkgPath)
|
21 |
|
22 | runTasks('tmplify', [
|
23 | () => tmplconv.tmplify(demo, 'asset/tmpl', {
|
24 | clean: true,
|
25 | mode: '444',
|
26 | pattern: [
|
27 | '+(bin|lib|test)/.*.bud',
|
28 | '+(bin|lib|test)/.*.hbs',
|
29 | 'test/._test.js.bud',
|
30 | 'doc/demo/.*.*',
|
31 | '**/*.*',
|
32 | '.*'
|
33 | ],
|
34 | ignore: [
|
35 | '.DS_Store',
|
36 | '.svn',
|
37 | '.npmignore',
|
38 | '.gitignore',
|
39 | 'node_modules/**/*.*',
|
40 | 'node_modules/**/.*',
|
41 | 'doc/demo/demo.html',
|
42 | 'doc/demo/demo.js',
|
43 | 'ci/demo.js',
|
44 | 'lib/index.js',
|
45 | 'lib/*.js',
|
46 | 'README.md',
|
47 | 'LICENSE'
|
48 | ],
|
49 | data: {
|
50 | 'github_repository': 'apeman-demo-labo/apeman-demo-react',
|
51 | 'package_name': demoPkg.name,
|
52 | 'package_description': demoPkg.description,
|
53 | 'component_name': 'DemoComponent',
|
54 | 'author_name': demoPkg.author.name,
|
55 | 'author_email': demoPkg.author.email,
|
56 | 'author_url': demoPkg.author.url
|
57 | },
|
58 | prefix: scaffold.prefix,
|
59 | suffix: scaffold.suffix
|
60 | }),
|
61 | () => tmplconv.tmplify(`${__dirname}/..`, 'asset/tmpl', {
|
62 | pattern: [
|
63 | '.gitignore',
|
64 | '.npmignore'
|
65 | ],
|
66 | prefix: scaffold.prefix,
|
67 | suffix: scaffold.suffix
|
68 | }),
|
69 | (callback) => {
|
70 | let filename = require.resolve('../asset/tmpl/package.json.tmpl')
|
71 | let str = fs.readFileSync(filename).toString()
|
72 | let pkg = JSON.parse(str)
|
73 | fs.chmodSync(filename, '644')
|
74 | fs.writeFileSync(filename, JSON.stringify({
|
75 | name: pkg.name,
|
76 | version: '1.0.0',
|
77 | description: pkg.description,
|
78 | main: pkg.main,
|
79 | scripts: pkg.scripts,
|
80 | repository: pkg.repository.url.split(/\//g).slice(-1).join('/').replace(/\.git$/, ''),
|
81 | keywords: pkg.keywords,
|
82 | author: pkg.author,
|
83 | license: pkg.license,
|
84 | bugs: pkg.bugs,
|
85 | homepage: pkg.homepage,
|
86 | dependencies: pkg.dependencies,
|
87 | devDependencies: pkg.devDependencies,
|
88 | engines: pkg.engines
|
89 | }, null, 2))
|
90 | fs.chmodSync(filename, '444')
|
91 | callback(null)
|
92 | }
|
93 | ], true)
|