UNPKG

2.11 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-demo/package.json'))
19const 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)