You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2013/05/09 16:01:19 UTC

[22/50] git commit: updated refs/heads/route-events to c33e390

fix broken addon task


Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/79d187b3
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/79d187b3
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/79d187b3

Branch: refs/heads/route-events
Commit: 79d187b3d126af99dc6fa0678166ed72269f4546
Parents: ed8be1d
Author: Simon Metson <me...@apache.org>
Authored: Thu Apr 4 13:08:21 2013 +0100
Committer: Garren Smith <ga...@gmail.com>
Committed: Thu May 9 09:59:56 2013 +0200

----------------------------------------------------------------------
 license.skip                                       |    1 +
 src/fauxton/package.json                           |   49 ++--------
 src/fauxton/tasks/addon/rename.json                |    5 +
 src/fauxton/tasks/addon/root/base.js.underscore    |   21 ++++
 .../tasks/addon/root/resources.js.underscore       |   21 ++++
 src/fauxton/tasks/addon/root/route.js.underscore   |   21 ++++
 src/fauxton/tasks/addon/template.js                |   70 +++++++++++++
 src/fauxton/tasks/fauxton.js                       |   78 ---------------
 src/fauxton/tasks/templates/base.js.underscore     |   21 ----
 .../tasks/templates/resources.js.underscore        |   21 ----
 src/fauxton/tasks/templates/route.js.underscore    |   21 ----
 src/fauxton/writing_addons.md                      |   14 ++--
 12 files changed, 154 insertions(+), 189 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/license.skip
----------------------------------------------------------------------
diff --git a/license.skip b/license.skip
index 7c1f783..291e51d 100644
--- a/license.skip
+++ b/license.skip
@@ -113,6 +113,7 @@
 ^src/fauxton/TODO.md
 ^src/fauxton/settings.json.*
 ^src/fauxton/test/.*
+^src/fauxton/tasks/rename.json
 ^src/ibrowse/.*
 ^src/mochiweb/.*
 ^src/snappy/.*

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/package.json
----------------------------------------------------------------------
diff --git a/src/fauxton/package.json b/src/fauxton/package.json
index 75d7c63..a6d746c 100644
--- a/src/fauxton/package.json
+++ b/src/fauxton/package.json
@@ -1,42 +1,9 @@
 {
-  "name": "fauxton",
-  "version": "0.1.0",
-  "description": "Fauxton is a modular CouchDB dashboard and Futon replacement.",
-  "main": "grunt.js",
-  "directories": {
-    "test": "test"
-  },
-  "dependencies": {
-    "async": "~0.2.6",
-    "grunt": "~0.4.1",
-    "grunt-cli": "~0.1.6",
-    "couchapp": "~0.9.1",
-    "grunt-contrib": "~0.5.0",
-    "grunt-contrib-cssmin": "~0.5.0",
-    "grunt-contrib-uglify": "~0.2.0",
-    "grunt-couchapp": "~0.1.0",
-    "grunt-exec": "~0.4.0",
-    "grunt-jasmine-task": "~0.2.3",
-    "grunt-requirejs": "~0.3.3",
-    "underscore": "~1.4.2",
-    "url": "~0.7.9",
-    "urls": "~0.0.3",
-    "express": "~3.0.6",
-    "http-proxy": "~0.9.1"
-  },
-  "devDependencies": {},
-  "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://git-wip-us.apache.org/repos/asf/couchdb.git"
-  },
-  "keywords": [
-    "couchdb",
-    "futon",
-    "fauxton"
-  ],
-  "author": "",
-  "license": "Apache V2"
-}
+  "name": "WickedCool",
+  "licenses": [
+    {
+      "type": "Apache",
+      "url": "undefined/blob/master/LICENSE-Apache"
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/tasks/addon/rename.json
----------------------------------------------------------------------
diff --git a/src/fauxton/tasks/addon/rename.json b/src/fauxton/tasks/addon/rename.json
new file mode 100644
index 0000000..1f326e9
--- /dev/null
+++ b/src/fauxton/tasks/addon/rename.json
@@ -0,0 +1,5 @@
+{
+  "route.js.underscore": "{%= path %}/{%= name.toLowerCase() %}/route.js",
+  "resources.js.underscore": "{%= path %}/{%= name.toLowerCase() %}/resources.js",
+  "base.js.underscore": "{%= path %}/{%= name.toLowerCase() %}/base.js"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/tasks/addon/root/base.js.underscore
----------------------------------------------------------------------
diff --git a/src/fauxton/tasks/addon/root/base.js.underscore b/src/fauxton/tasks/addon/root/base.js.underscore
new file mode 100644
index 0000000..d002cd5
--- /dev/null
+++ b/src/fauxton/tasks/addon/root/base.js.underscore
@@ -0,0 +1,21 @@
+// 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.
+
+define([
+  "app",
+  "api",
+  "addons/{%= name.toLowerCase() %}/routes"
+],
+
+function(app, FauxtonAPI, {%= name %}) {
+  return {%= name %};
+});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/tasks/addon/root/resources.js.underscore
----------------------------------------------------------------------
diff --git a/src/fauxton/tasks/addon/root/resources.js.underscore b/src/fauxton/tasks/addon/root/resources.js.underscore
new file mode 100644
index 0000000..8d0ef32
--- /dev/null
+++ b/src/fauxton/tasks/addon/root/resources.js.underscore
@@ -0,0 +1,21 @@
+// 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.
+
+define([
+  "app",
+  "api"
+],
+
+function (app, FauxtonAPI) {
+  var {%= name %} = FauxtonAPI.addon();
+  return {%= name %};
+});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/tasks/addon/root/route.js.underscore
----------------------------------------------------------------------
diff --git a/src/fauxton/tasks/addon/root/route.js.underscore b/src/fauxton/tasks/addon/root/route.js.underscore
new file mode 100644
index 0000000..859e5bb
--- /dev/null
+++ b/src/fauxton/tasks/addon/root/route.js.underscore
@@ -0,0 +1,21 @@
+// 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.
+
+define([
+  "app",
+  "api",
+  "addons/{%= name.toLowerCase() %}/resources"
+],
+function(app, FauxtonAPI, {%= name %}) {
+  {%= name %}.Routes = {};
+  return {%= name %};
+});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/tasks/addon/template.js
----------------------------------------------------------------------
diff --git a/src/fauxton/tasks/addon/template.js b/src/fauxton/tasks/addon/template.js
new file mode 100644
index 0000000..459ff34
--- /dev/null
+++ b/src/fauxton/tasks/addon/template.js
@@ -0,0 +1,70 @@
+// 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.
+
+'use strict';
+
+exports.description = 'Generate a skeleton for an addon.';
+
+exports.notes = '';
+
+exports.after = "Created your addon! Don't forget to update your"+
+                " settings.json for it to be compiled and deployed";
+
+// Any existing file or directory matching this wildcard will cause a warning.
+// exports.warnOn = '*';
+
+// The actual init template.
+exports.template = function(grunt, init, done) {
+
+  // destpath
+  init.process(
+    {},
+    [
+      {
+        name: "name",
+        message: "Add on Name",
+        validator: /^[\w\-\.]+$/,
+        default: "WickedCool"
+      },
+      {
+        name: "path",
+        message: "Location of add ons",
+        default: "app/addons"
+      },
+      {
+        name: "assets",
+        message: "Do you need an assets folder? (for .less)",
+        default: 'y/N'
+      }
+    ],
+    function (err, props) {
+      // Files to copy (and process).
+      var files = init.filesToCopy(props);
+
+      // Actually copy and process (apply the template props) files.
+      init.copyAndProcess(files, props);
+
+      // Make the assets dir if requested
+      if (props.assets == "y"){
+        var asspath = props.path + "/" + props.name.toLowerCase() + "/assets";
+        grunt.file.mkdir(asspath);
+        grunt.log.writeln("Created " + asspath);
+      }
+
+      var tmplpath = props.path + "/" + props.name.toLowerCase() + "/templates";
+      grunt.file.mkdir(tmplpath);
+      grunt.log.writeln("Created " + tmplpath);
+      // All done!
+      done();
+    }
+  )
+};
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/tasks/fauxton.js
----------------------------------------------------------------------
diff --git a/src/fauxton/tasks/fauxton.js b/src/fauxton/tasks/fauxton.js
index b718fea..a26f9f8 100644
--- a/src/fauxton/tasks/fauxton.js
+++ b/src/fauxton/tasks/fauxton.js
@@ -10,86 +10,8 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 
-// var prompt = require('prompt');
-
 module.exports = function(grunt) {
   var _ = grunt.util._;
-  var prompts = [
-    {
-      name: "name",
-      message: "Add on Name",
-      validator: /^[\w\-\.]+$/,
-      default: "WickedCool"
-    },
-    {
-      name: "path",
-      message: "Location of add ons",
-      default: "app/addons"
-    },
-    {
-      name: "assets",
-      message: "Do you need an assets folder? (for .less)",
-      default: 'y/N'
-    }
-  ];
-
-  addonTemplates = [
-    {
-      name: 'base',
-      filename: 'base.js',
-      template: grunt.file.read('./tasks/templates/base.js.underscore')
-    },
-    {
-      name: 'resources',
-      filename: 'resources.js',
-      template: grunt.file.read('./tasks/templates/resources.js.underscore')
-    },
-    {
-      name: 'routes',
-      filename: 'routes.js',
-      template: grunt.file.read('./tasks/templates/route.js.underscore')
-    }
-  ];
-
-  // Create a new task.
-  grunt.registerInitTask('addon', 'Generate a skeleton for an addon"', function() {
-    var done = this.async();
-    grunt.helper('prompt', {}, prompts, function (err, result) {
-      if (err) { return onErr(err); }
-      grunt.log.writeln(result.assets);
-      var module = result.name,
-          assets = result.assets;
-      if (assets == 'y') {
-        //if you need an assets folder
-        filepath = result.path + '/' + module.toLowerCase() + '/assets/less';
-        grunt.file.mkdir(filepath);
-        lessfile = {
-          name: 'less',
-          filename: module.toLowerCase()+'.less',
-          template: '//<%= module %> styles'
-        };
-        lessfile.module = module.charAt(0).toUpperCase() + module.substr(1);
-        var content = grunt.template.process(lessfile.template, lessfile);
-        grunt.file.write(filepath + '/' + lessfile.filename, content);
-      }
-      filepath = result.path + '/' + module.toLowerCase() + '/templates';
-      grunt.file.mkdir(filepath);
-      filepath = result.path + '/' + module.toLowerCase();
-      _.each(addonTemplates, function(file){
-        file.module = module.charAt(0).toUpperCase() + module.substr(1);
-        var content = grunt.template.process(file.template, file);
-        grunt.file.write(filepath + '/' + file.filename, content);
-      });
-      grunt.log.writeln('Created addon ' + result.name + ' in ' + result.path);
-      grunt.log.writeln('\n\nAdd ' + result.name + ' to settings.json for it to be compiled and deployed');
-      done();
-    });
-    function onErr(err) {
-      grunt.log.writeln(err);
-      done();
-      return 1;
-    }
-  });
 
   grunt.registerMultiTask('template', 'generates an html file from a specified template', function(){
     var data = this.data;

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/tasks/templates/base.js.underscore
----------------------------------------------------------------------
diff --git a/src/fauxton/tasks/templates/base.js.underscore b/src/fauxton/tasks/templates/base.js.underscore
deleted file mode 100644
index cf7afa7..0000000
--- a/src/fauxton/tasks/templates/base.js.underscore
+++ /dev/null
@@ -1,21 +0,0 @@
-// 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.
-
-define([
-  "app",
-  "api",
-  "addons/<%= module.toLowerCase() %>/routes"
-],
-
-function(app, FauxtonAPI, <%= module %>) {
-  return <%= module %>;
-});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/tasks/templates/resources.js.underscore
----------------------------------------------------------------------
diff --git a/src/fauxton/tasks/templates/resources.js.underscore b/src/fauxton/tasks/templates/resources.js.underscore
deleted file mode 100644
index 0aa37f8..0000000
--- a/src/fauxton/tasks/templates/resources.js.underscore
+++ /dev/null
@@ -1,21 +0,0 @@
-// 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.
-
-define([
-  "app",
-  "api"
-],
-
-function (app, FauxtonAPI) {
-  var <%= module %> = FauxtonAPI.addon();
-  return <%= module %>;
-});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/tasks/templates/route.js.underscore
----------------------------------------------------------------------
diff --git a/src/fauxton/tasks/templates/route.js.underscore b/src/fauxton/tasks/templates/route.js.underscore
deleted file mode 100644
index 9256766..0000000
--- a/src/fauxton/tasks/templates/route.js.underscore
+++ /dev/null
@@ -1,21 +0,0 @@
-// 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.
-
-define([
-  "app",
-  "api", 
-  "addons/<%= module.toLowerCase() %>/resources"
-],
-function(app, FauxtonAPI, <%= module %>) {
-  <%= module %>.Routes = {};
-  return <%= module %>;
-});

http://git-wip-us.apache.org/repos/asf/couchdb/blob/79d187b3/src/fauxton/writing_addons.md
----------------------------------------------------------------------
diff --git a/src/fauxton/writing_addons.md b/src/fauxton/writing_addons.md
index ccd09af..e0a85fa 100644
--- a/src/fauxton/writing_addons.md
+++ b/src/fauxton/writing_addons.md
@@ -11,14 +11,14 @@ have the following structure:
 
  [optional]
  * assets/less
-   * my_addon.less 
+   * my_addon.less
 
 ## Generating an addon
-We have a grunt task that lets you create a skeleton addon, including all the
-boiler plate code. Run `bbb addon` and answer the questions it asks to create
-an addon:
+We have a `grunt-init` template that lets you create a skeleton addon,
+including all the boiler plate code. Run `grunt-init tasks/addon` and answer
+the questions it asks to create an addon:
 
-    ± bbb addon
+    ± grunt-init tasks/addon
     path.existsSync is now called `fs.existsSync`.
     Running "addon" task
 
@@ -32,8 +32,8 @@ an addon:
 
     Done, without errors.
 
-Once the addon is created add the name to the settings.json file to get it compiled
-and added on the next install.
+Once the addon is created add the name to the settings.json file to get it
+compiled and added on the next install.
 
 ## Routes and hooks
 An addon can insert itself into fauxton in two ways; via a route or via a hook.