UNPKG

1.94 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
18const demo = path.dirname(require.resolve('apeman-demo-demo/package.json'))
19const demoPkg = require('apeman-demo-demo/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-demo',
38 package_name: demoPkg.name,
39 package_description: demoPkg.description,
40 author_name: demoPkg.author.name,
41 author_email: demoPkg.author.email,
42 author_url: demoPkg.author.url
43 },
44 prefix: scff.prefix,
45 suffix: scff.suffix
46 }),
47 () => tmplconv.tmplify(`${__dirname}/..`, 'asset/tmpl', {
48 pattern: [
49 '.gitignore'
50 ],
51 prefix: scff.prefix,
52 suffix: scff.suffix
53 }),
54 () => {
55 let filename = require.resolve('../asset/tmpl/package.json.tmpl')
56 let str = fs.readFileSync(filename).toString()
57 let pkg = JSON.parse(str)
58 fs.chmodSync(filename, '644')
59 fs.writeFileSync(filename, JSON.stringify({
60 name: pkg.name,
61 version: '1.0.0',
62 description: pkg.description,
63 main: pkg.main,
64 scripts: pkg.scripts,
65 repository: pkg.repository.url.split(/\//g).slice(-1).join('/').replace(/\.git$/, ''),
66 keywords: pkg.keywords,
67 author: pkg.author,
68 license: pkg.license,
69 bugs: pkg.bugs,
70 homepage: pkg.homepage,
71 dependencies: pkg.dependencies,
72 devDependencies: pkg.devDependencies,
73 engines: pkg.engines
74 }, null, 2))
75 fs.chmodSync(filename, '444')
76 }
77], true)