UNPKG

2.52 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
18const demo = path.dirname(require.resolve('apeman-demo-task/package.json')),
19 demoPkg = require('apeman-demo-task/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 '+(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);