name: Autocode
version: 1.3.1
description: spec-driven code generator
repository: https://github.com/ctate/autocode
author:
  name: Chris Tate
  email: chris@autocode.run
  url: 'https://autocode.run'
company: Autocode
license: Apache-2.0
copyright: Copyright © 2015-2016 Autocode. All Rights Reserved.
imports:
  ctate/authors: ~0.3.7
  ctate/bower: ~0.5.2
  ctate/git: ~0.2.3
  ctate/grunt: ~0.3.2
  ctate/handlebars: ~0.4.4
  ctate/license: ~0.5.2
  ctate/npm: ~0.4.3
  ctate/readme: ~0.5.4
  ctate/travis: ~0.4.1
exports:
  ConfigSchema:
    schema:
      type: object
      properties:
        author:
          type: object
          properties:
            name:
              title: Name
              type: string
            email:
              title: Email
              type: string
            url:
              title: URL
              type: string
        copyright:
          title: Copyright
          type: string
        description:
          description: This project's description.
          title: Description
          type: string
        exports:
          type: object
          additionalProperties:
            type: object
            properties:
              description:
                type: string
              engine:
                type: string
              example:
                type: string
              helper:
                type:
                  - string
                  - object
                additionalProperties:
                  type: string
              processor:
                type: string
              generator:
                type: string
              schema:
                type:
                  - object
                  - string
              spec:
                type:
                  - array
                  - object
                  - string
              type:
                required: true
                type: string
        imports:
          type: object
          additionalProperties:
            type:
              - string
              - object
            properties:
              aliases:
                type: object
                additionalProperties:
                  type: string
              version:
                type: string
        name:
          description: This project's name.
          title: Name
          type: string
        version:
          description: This project's version.
          title: Version
          type:
            - number
            - string
    type: schema
  VersionGenerator:
    engine: handlebars.HandlebarsEngine
    filename: version.txt
    schema:
      type: object
      properties:
        version:
          required: true
          type: string
    template: version.hbs
    type: generator
outputs:
  - generator: bower.ConfigGenerator
    spec:
      directory: app/lib/components
  
  - generator: bower.PackageGenerator
    spec:
      name: autocode
      description: $description
      main: lib/autocode.js
      dependencies:
        CodeMirror: 5.7.0
        dragula: 3.5.4
        formulator: 0.10.1
        google-diff-match-patch-js: 1.0.0
        jquery: 2.1.4
        jquery-cookie: 1.4.1
        jquery-ui: 1.11.4
        jstree: 3.2.1
        js-yaml: 3.4.2
        marked: 0.3.5
        zeroclipboard: 2.2.0
  
  - generator: git.GitignoreGenerator
    spec:
      items:
        - .DS_Store
        - app/lib/components/
        - app/lib/scripts
        - node_modules/
  
  - generator: grunt.GruntfileGenerator
    spec:
      loadNpmTasks:
        - grunt-contrib-concat
        - grunt-contrib-watch
      registerTask:
        default:
          - concat
      config:
        pkg: package.json
        concat:
          options:
            separator: ;
          dist:
            src:
              - app/src/scripts/autocode.js
              - app/src/scripts/autocode/*.js
              - app/src/scripts/*/**
            dest: app/lib/scripts/autocode.js
        watch:
          files:
            - app/src/scripts/autocode.js
            - app/src/scripts/*/**
          tasks:
            - concat
  
  - generator: license.LicenseGenerator
    spec:
      copyright: $copyright
      license: $license
  
  - generator: npm.PackageGenerator
    spec: npm.yml
    
  - generator: readme.ReadmeGenerator
    spec:
      name: $name
      description: $description
      badges:
        - type: travis
          subject: ctate/autocode
        - type: gitter
          subject: ctate/autocode
      #logo:
      #  image: https://rawgit.com/crystal/autocode/master/.autocode/image.svg
      #  text: $name
      #  url: https://autocode.run
      showTableOfContents: true
      sections:
        - name: install
          title: Install
          content: |
            Use `npm` to install Autocode:
            
            ```sh
            npm install autocode -g
            ```
        - name: projects
          title: Generators
          content: |
            <table width="100%">
              <tr>
                <td>
                  <a href="https://github.com/ctate/angular">
                    <img width="50" src="https://rawgit.com/ctate/angular/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/angular">ctate/angular</a></b></div>
                  Generates an Angular app
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/asciinema">
                    <img width="50" src="https://rawgit.com/ctate/asciinema/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/asciinema">ctate/asciinema</a></b></div>
                  Generates an Asciicast
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/backbone">
                    <img width="50" src="https://rawgit.com/ctate/backbone/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/backbone">ctate/backbone</a></b></div>
                  Generates a Backbone app
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/bower">
                    <img width="50" src="https://rawgit.com/ctate/bower/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/bower">ctate/bower</a></b></div>
                  Generates Bower config and package files
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/cocoapods">
                    <img width="50" src="https://rawgit.com/ctate/cocoapods/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/cocoapods">ctate/cocoapods</a></b></div>
                  Generates a Podfile
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/coffeescript">
                    <img width="50" src="https://rawgit.com/ctate/coffeescript/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/coffeescript">ctate/coffeescript</a></b></div>
                  Transforms CoffeeScript into JavaScript
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/composer">
                    <img width="50" src="https://rawgit.com/ctate/composer/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/composer">ctate/composer</a></b></div>
                  Generates a Composer package file
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/cordova">
                    <img width="50" src="https://rawgit.com/ctate/cordova/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/cordova">ctate/cordova</a></b></div>
                  Generates a Cordova app
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/django">
                    <img width="50" src="https://rawgit.com/ctate/django/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/django">ctate/django</a></b></div>
                  Generates a Django app
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/docker">
                    <img width="50" src="https://rawgit.com/ctate/docker/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/docker">ctate/docker</a></b></div>
                  Generates a Dockerfile
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/editorconfig">
                    <img width="50" src="https://rawgit.com/ctate/editorconfig/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/editorconfig">ctate/editorconfig</a></b></div>
                  Generates an .editorconfig file
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/electron">
                    <img width="50" src="https://rawgit.com/ctate/electron/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/electron">ctate/electron</a></b></div>
                  Generates an Electron app
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/eslint">
                    <img width="50" src="https://rawgit.com/ctate/eslint/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/eslint">ctate/eslint</a></b></div>
                  Generates an .eslintrc file
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/express">
                    <img width="50" src="https://rawgit.com/ctate/express/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/express">ctate/express</a></b></div>
                  Generates an Express app
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/feathers">
                    <img width="50" src="https://rawgit.com/ctate/feathers/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/feathers">ctate/feathers</a></b></div>
                  Generates a Feathers app
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/git">
                    <img width="50" src="https://rawgit.com/ctate/git/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/git">ctate/git</a></b></div>
                  Generates `.gitignore` and `.gitkeep` files
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/google-analytics">
                    <img width="50" src="https://rawgit.com/ctate/google-analytics/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/google-analytics">ctate/google-analytics</a></b></div>
                  Generates tracking code for Google Analytics
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/grunt">
                    <img width="50" src="https://rawgit.com/ctate/grunt/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/grunt">ctate/grunt</a></b></div>
                  Generates a Gruntfile
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/handlebars">
                    <img width="50" src="https://rawgit.com/ctate/handlebars/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/handlebars">ctate/handlebars</a></b></div>
                  Renders Handlebars templates for generators
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/hosts">
                    <img width="50" src="https://rawgit.com/ctate/hosts/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/hosts">ctate/hosts</a></b></div>
                  Generates a HOSTS file
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/httpd">
                    <img width="50" src="https://rawgit.com/ctate/httpd/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/httpd">ctate/httpd</a></b></div>
                  Generates a `apache.conf` file
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/ini">
                    <img width="50" src="https://rawgit.com/ctate/ini/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/ini">ctate/ini</a></b></div>
                  Renders INI files for generators
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/jade">
                    <img width="50" src="https://rawgit.com/ctate/jade/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/jade">ctate/jade</a></b></div>
                  Renders Jade templates for generators
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/javascript">
                    <img width="50" src="https://rawgit.com/ctate/javascript/master/.autocode/icon.svg" />
                  <a/>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/javascript">ctate/javascript</a></b></div>
                  Transforms JavaScript into beautiful JavaScript
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/jshint">
                    <img width="50" src="https://rawgit.com/ctate/jshint/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/jshint">ctate/jshint</a></b></div>
                  Generates a `.jshintrc` file
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/json">
                    <img width="50" src="https://rawgit.com/ctate/json/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/json">ctate/json</a></b></div>
                  Renders JSON files for generators
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/laravel">
                    <img width="50" src="https://rawgit.com/ctate/laravel/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/laravel">ctate/laravel</a></b></div>
                  Generates a Laravel app
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/license">
                    <img width="50" src="https://rawgit.com/ctate/license/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/license">ctate/license</a></b></div>
                  Generates a LICENSE file
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/martini">
                    <img width="50" src="https://rawgit.com/ctate/martini/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/martini">ctate/martini</a></b></div>
                  Generates a Martini app
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/model">
                    <img width="50" src="https://rawgit.com/ctate/model/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/model">ctate/model</a></b></div>
                  Model Schema
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/npm">
                    <img width="50" src="https://rawgit.com/ctate/npm/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/npm">ctate/npm</a></b></div>
                  Generates `package.json` and `.npmignore` files
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/php">
                    <img width="50" src="https://rawgit.com/ctate/php/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/php">ctate/php</a></b></div>
                  Generates `php.ini` files
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/pip">
                    <img width="50" src="https://rawgit.com/ctate/pip/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/pip">ctate/pip</a></b></div>
                  Generates `requirements.txt` files
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/rails">
                    <img width="50" src="https://rawgit.com/ctate/rails/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/rails">ctate/rails</a></b></div>
                  Generates a Rails app
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/raml">
                    <img width="50" src="https://rawgit.com/ctate/raml/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/raml">ctate/raml</a></b></div>
                  Schemas for RAML
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/redis">
                    <img width="50" src="https://rawgit.com/ctate/redis/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/redis">ctate/redis</a></b></div>
                  Generates a `redis.conf` file
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/rubygems">
                    <img width="50" src="https://rawgit.com/ctate/rubygems/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/rubygems">ctate/rubygems</a></b></div>
                  Generates a `Gemfile`
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/sequelize">
                    <img width="50" src="https://rawgit.com/ctate/sequelize/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/sequelize">ctate/sequelize</a></b></div>
                  Generates models for Sequelize
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/swagger">
                    <img width="50" src="https://rawgit.com/ctate/swagger/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/swagger">ctate/swagger</a></b></div>
                  Schemas for Swagger
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/travis">
                    <img width="50" src="https://rawgit.com/ctate/travis/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/travis">ctate/travis</a></b></div>
                  Generates a `.travis.yml` file
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/vagrant">
                    <img width="50" src="https://rawgit.com/ctate/vagrant/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/vagrant">ctate/vagrant</a></b></div>
                  Generates a `Vagrantfile`
                </div>
              </tr>
              <tr>
                <td>
                  <a href="https://github.com/ctate/watchman">
                    <img width="50" src="https://rawgit.com/ctate/watchman/master/.autocode/icon.svg" />
                  </a>
                </td>
                <td>
                  <div><b><a href="https://github.com/ctate/watchman">ctate/watchman</a></b></div>
                  Generates a `.watchmanconfig` file
                </div>
              </tr>
            </table>
        - name: docs
          title: Documentation
          content: |
            View Autocode's Official Documentation here:

            [https://autocode.readme.io](https://autocode.readme.io)
  - generator: travis.ConfigGenerator
    spec:
      language: node_js
      node_js:
      - '0.12'
  - generator: VersionGenerator
    path: cli
    spec:
      version: $version
scripts:
  build:
    - description: Install Node.js via nvm.
      command: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
    - description: Install Bower via npm.
      command: npm install bower -g
    - description: Install CoffeeScript via npm.
      command: npm install coffee-script -g
    - description: Install Forever via npm.
      command: npm install forever -g
    - description: Install Grunt CLI via npm.
      command: npm install grunt-cli -g
    - description: Install npm Modules.
      command: npm install
    - description: Install bower Modules.
      command: bower install
    - description: Compile Library.
      command: coffee --compile --output lib/ src/
    - description: Compile CLI Library.
      command: coffee --compile --output cli/lib/ cli/src/
    - description: Run Grunt.
      command: grunt
  run:
    - description: Run web server for Autocode app.
      command: forever start -a --uid autocode-app app/app.js
  stop:
    - description: Stop web server for Autocode app.
      command: forever stop autocode-app
  test:
    - description: Test Autocode.
      command: npm test
