UNPKG

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