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 | fs = require('fs'),
|
13 | apeTasking = require('ape-tasking'),
|
14 | tmplconv = require('tmplconv');
|
15 |
|
16 | const scff = require('../lib');
|
17 |
|
18 | const demo = path.dirname(require.resolve('apeman-demo-task/package.json')),
|
19 | demoPkg = require('apeman-demo-task/package.json');
|
20 |
|
21 | apeTasking.runTasks('tmplify', [
|
22 | (callback) => {
|
23 | tmplconv.tmplify(demo, 'asset/tmpl', {
|
24 | clean: true,
|
25 | mode: '444',
|
26 | pattern: [
|
27 | '**/*.*',
|
28 | '.*',
|
29 | '+(lib|test)/.*.bud',
|
30 | '+(lib|test)/.*.hbs'
|
31 | ],
|
32 | ignore: [
|
33 | '.DS_Store',
|
34 | '.svg',
|
35 | 'ci/demo.js',
|
36 | 'node_modules/**/*.*'
|
37 | ],
|
38 | data: {
|
39 | 'github_repository': "apeman-demo-labo/apeman-demo-task",
|
40 | 'package_name': 'apeman-demo-task',
|
41 | 'package_description': 'Demo of task project.',
|
42 | 'author_name': demoPkg.author.name,
|
43 | 'author_email': demoPkg.author.email,
|
44 | 'author_url': demoPkg.author.url
|
45 | },
|
46 | prefix: scff.prefix,
|
47 | suffix: scff.suffix
|
48 | }, callback);
|
49 | },
|
50 | (callback) => {
|
51 | tmplconv.tmplify(__dirname + '/..', 'asset/tmpl', {
|
52 | pattern: [
|
53 | '.gitignore'
|
54 | ],
|
55 | prefix: scff.prefix,
|
56 | suffix: scff.suffix
|
57 | }, callback);
|
58 | },
|
59 | (callback) => {
|
60 | let filename = require.resolve('../asset/tmpl/package.json.tmpl');
|
61 | let str = fs.readFileSync(filename).toString();
|
62 | let pkg = JSON.parse(str);
|
63 | fs.chmodSync(filename, '644');
|
64 | fs.writeFileSync(filename, JSON.stringify({
|
65 | name: pkg.name,
|
66 | version: '1.0.0',
|
67 | description: pkg.description,
|
68 | main: pkg.main,
|
69 | scripts: pkg.scripts,
|
70 | repository: pkg.repository.url.split(/\//g).slice(-1).join('/').replace(/\.git$/, ''),
|
71 | keywords: pkg.keywords,
|
72 | author: pkg.author,
|
73 | license: pkg.license,
|
74 | bugs: pkg.bugs,
|
75 | homepage: pkg.homepage,
|
76 | dependencies: pkg.dependencies,
|
77 | devDependencies: pkg.devDependencies,
|
78 | engines: pkg.engines
|
79 | }, null, 2));
|
80 | fs.chmodSync(filename, '444');
|
81 | callback(null);
|
82 | }
|
83 | ], true);
|