aboutsummaryrefslogtreecommitdiff
path: root/docs/build/node_modules/hogan.js/bin
diff options
context:
space:
mode:
Diffstat (limited to 'docs/build/node_modules/hogan.js/bin')
-rwxr-xr-xdocs/build/node_modules/hogan.js/bin/hulk93
1 files changed, 93 insertions, 0 deletions
diff --git a/docs/build/node_modules/hogan.js/bin/hulk b/docs/build/node_modules/hogan.js/bin/hulk
new file mode 100755
index 000000000..dd5c4a60d
--- /dev/null
+++ b/docs/build/node_modules/hogan.js/bin/hulk
@@ -0,0 +1,93 @@
+#!/usr/bin/env node
+
+/*
+ * Copyright 2011 Twitter, Inc.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var hogan = require('../lib/hogan.js'),
+ path = require('path'),
+ fs = require('fs');
+
+var specials = ['/', '.', '*', '+', '?', '|','(', ')', '[', ']', '{', '}', '\\'],
+ specialsRegExp = new RegExp('(\\' + specials.join('|\\') + ')', 'g'),
+ templates;
+
+
+// Escape special regexp characters
+function esc(text) {
+ return text.replace(specialsRegExp, '\\$1');
+}
+
+
+// Check for dirs and correct ext (<3 for windows)
+function extractFiles(args) {
+ var usage = 'USAGE: hulk ./templates/*.mustaches\n' +
+ 'NOTE: hulk supports the "*" wildcard and allows you to target specific extensions too',
+ files = [];
+
+ if (!args.length) {
+ console.log(usage);
+ process.exit(-1);
+ }
+
+ args.forEach(function (arg) {
+
+ if (/\*/.test(arg)) {
+ arg = arg.split('*');
+ return files = files.concat(
+ fs.readdirSync(arg[0] || '.')
+ .map(function (f) {
+ return new RegExp(esc(arg[1]) + '$').test(f) && path.join(arg[0], f);
+ })
+ .filter(function (f) {
+ return f;
+ })
+ );
+ }
+
+ files.push(arg);
+
+ })
+
+ return files;
+}
+
+
+// Remove utf-8 byte order mark, http://en.wikipedia.org/wiki/Byte_order_mark
+function removeByteOrderMark(text) {
+ if (text.charCodeAt(0) === 0xfeff) {
+ return text.substring(1);
+ }
+ return text;
+}
+
+
+// Write a template foreach file that matches template extension
+templates = extractFiles(process.argv.slice(2))
+ .map(function (file) {
+ var openedFile = fs.readFileSync(file, 'utf-8'), name;
+ if (!openedFile) return;
+ name = file.replace(/\..*$/, '');
+ openedFile = removeByteOrderMark(openedFile.trim());
+ return 'templates.' + name + ' = new Hogan.Template(' + hogan.compile(openedFile, { asString: 1 }) + ');';
+ })
+ .filter(function (t) {
+ return t;
+ });
+
+
+// Output templates
+if (!templates.length) return;
+console.log('var templates = {};');
+console.log(templates.join('\n')); \ No newline at end of file