UNPKG

2.17 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3/**
4 * Tmplify prototype.
5 */
6
7"use strict";
8
9process.chdir(__dirname + '/..');
10
11var path = require('path'),
12 fs = require('fs'),
13 apeTasking = require('ape-tasking'),
14 tmplconv = require('tmplconv');
15
16var scaffold = require('../lib');
17
18var demo = path.dirname(require.resolve('../asset/prototype/package.json'));
19
20apeTasking.runTasks('tmplify', [
21 function (callback) {
22 tmplconv.tmplify(demo, 'asset/tmpl', {
23 clean: true,
24 mode: '444',
25 pattern: [
26 '**/*.*',
27 '.*',
28 '*/.*.bud',
29 '*/.*.hbs'
30 ],
31 ignore: [
32 '.DS_Store',
33 '.svg'
34 ],
35 data: {
36 'github_repository': "my-wonderful-repo/my-awesome-pkg",
37 'package_name': 'my-awesome-pkg',
38 'package_description': 'This is my awesome package.',
39 'author_name': 'Taka Okunishi',
40 'author_email': 'okunishitaka.com@gmail.com',
41 'author_url': 'http://okunishitaka.com'
42 },
43 prefix: scaffold.prefix,
44 suffix: scaffold.suffix
45 }, callback);
46 },
47 function (callback) {
48 tmplconv.tmplify(__dirname + '/..', 'asset/tmpl', {
49 pattern: [
50 '.gitignore'
51 ],
52 prefix: scaffold.prefix,
53 suffix: scaffold.suffix
54 }, callback);
55 },
56 function (callback) {
57 var filename = require.resolve('../asset/tmpl/package.json.tmpl');
58 var str = fs.readFileSync(filename).toString();
59 var pkg = JSON.parse(str);
60 pkg.version = '1.0.0';
61 delete pkg['readme'];
62 delete pkg['readmeFilename'];
63 delete pkg['gitHead'];
64 delete pkg['_id'];
65 delete pkg['_shasum'];
66 delete pkg['_from'];
67 pkg.repository = pkg.repository.url.split(/\//g).slice(-2).join('/').replace(/\.git$/, '');
68 fs.chmodSync(filename, '644');
69 fs.writeFileSync(filename, JSON.stringify(pkg, null, 2));
70 fs.chmodSync(filename, '444');
71 callback(null);
72 }
73], true);