UNPKG

2.12 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 ],
29 ignore: [
30 '.DS_Store',
31 '.svg'
32 ],
33 data: {
34 'github_repository': "my-wonderful-repo/my-awesome-pkg",
35 'package_name': 'my-awesome-pkg',
36 'package_description': 'This is my awesome package.',
37 'author_name': 'Taka Okunishi',
38 'author_email': 'okunishitaka.com@gmail.com',
39 'author_url': 'http://okunishitaka.com'
40 },
41 prefix: scaffold.prefix,
42 suffix: scaffold.suffix
43 }, callback);
44 },
45 function (callback) {
46 tmplconv.tmplify(__dirname + '/..', 'asset/tmpl', {
47 pattern: [
48 '.gitignore'
49 ],
50 prefix: scaffold.prefix,
51 suffix: scaffold.suffix
52 }, callback);
53 },
54 function (callback) {
55 var filename = require.resolve('../asset/tmpl/package.json.tmpl');
56 var str = fs.readFileSync(filename).toString();
57 var pkg = JSON.parse(str);
58 pkg.version = '1.0.0';
59 delete pkg['readme'];
60 delete pkg['readmeFilename'];
61 delete pkg['gitHead'];
62 delete pkg['_id'];
63 delete pkg['_shasum'];
64 delete pkg['_from'];
65 pkg.repository = pkg.repository.url.split(/\//g).slice(-2).join('/').replace(/\.git$/, '');
66 fs.chmodSync(filename, '644');
67 fs.writeFileSync(filename, JSON.stringify(pkg, null, 2));
68 fs.chmodSync(filename, '444');
69 callback(null);
70 }
71], true);