UNPKG

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