summaryrefslogtreecommitdiff
path: root/src/fauxton/tasks/addon/template.js
blob: cdbd281aa933c7c475b154c80aac5ecad1276d33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// 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);
      }

      // All done!
      done();
    }
  )
};