UNPKG

2.01 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 { runTasks } = require('ape-tasking')
14const tmplconv = require('tmplconv')
15
16const scff = require('../lib')
17
18let demo = path.dirname(require.resolve('apeman-demo-brws/package.json'))
19let demoPkg = require('apeman-demo-brws/package.json')
20
21runTasks('tmplify', [
22 () => tmplconv.tmplify(demo, 'asset/tmpl', {
23 clean: true,
24 mode: '444',
25 pattern: [
26 '**/*.*',
27 '.*',
28 '*/.*.bud',
29 '*/.*.hbs'
30 ],
31 ignore: [
32 'node_modules/**/*.*',
33 '.DS_Store',
34 '.svg'
35 ],
36 data: {
37 'github_repository': 'apeman-demo-labo/apeman-demo-brws',
38 'package_name': demoPkg.name,
39 'package_description': demoPkg.description,
40 'class_name': 'ApDemoClass',
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)