UNPKG

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