{
  "meta": {
    "title": "Generating graoJS Application"
  },
  "properties": {
    "name": {
      "description": "Application Name (lowercase letters)",
      "pattern": "^[a-zA-Z0-9]+$",
      "message": "No spaces or special chars",
      "required": true
    },
    "description": {
      "description": "Application Description",
      "required": true
    },
    "author-name": {
      "description": "Author",
      "required": true
    },
    "author-email": {
      "description": "Author's Email",
      "required": true
    },
    "server-ports":{
      "description": "Starting port to server (comma separated)",
      "required": true,
      "pattern": "^([0-9]{4,5})+(,([0-9]{4,5})+)*$",
      "message": "Must be a comma separated list of port numbers > 1024",
      "default": "8015,8016"
    },
    "template-engine": {
      "description": "Template Engine (pug)",
      "pattern": "^pug$",
      "message": "Must be pug",
      "required": true,
      "default": "pug"
    },
    "theme": {
      "description": "Bootstrap Theme => bootstrap (default), graojs or Bootswatch's options",
      "pattern": "^graojs|bootstrap|cerulean|cosmo|cyborg|flatly|journal|readable|simplex|slate|spacelab|united|darkly|lumen|paper|sandstone|superhero|yeti$",
      "message": "Must be one of: graojs|bootstrap|cerulean|cosmo|cyborg|flatly|journal|readable|simplex|slate|spacelab|united|darkly|lumen|paper|sandstone|superhero|yeti",
      "required": true,
      "default": "bootstrap"
    },
    "mongodb-host":{
      "description": "MongoDB Host",
      "required": true,
      "default": "localhost"
    },
    "mongodb-db":{
      "description": "MongoDB Database",
      "required": true,
      "default": "grao"
    }
  },
  "target": "{{ name }}/",
  "ignores": [
    "skeleton.json"
  ],
  "parseIgnores": [
    "bundles/access",
    "bundles/frontend/theme/topbar",
    "config/locales"
  ],
  "rewrites": {
    "log/app.log": "log/{{name}}.log",
    "bundles/frontend/view/pug/home.pug": "bundles/frontend/view/home.pug",
    "bundles/frontend/view/pug/index.pug": "bundles/frontend/view/index.pug",
    "bundles/frontend/view/pug/explore.pug": "bundles/frontend/view/explore.pug",
    "bundles/frontend/view/pug/manifest.pug": "bundles/frontend/view/manifest.pug",
    "bundles/frontend/view/pug/pricing.pug": "bundles/frontend/view/pricing.pug",
    "bundles/frontend/theme/pug/layout_home.pug": "bundles/frontend/theme/layout_home.pug",
    "bundles/frontend/theme/pug/head.pug": "bundles/frontend/theme/head.pug",
    "bundles/frontend/theme/pug/app.pug": "bundles/frontend/theme/app.pug",
    "bundles/frontend/theme/pug/foot.pug": "bundles/frontend/theme/foot.pug",
    "bundles/frontend/theme/pug/topbar.pug": "bundles/frontend/theme/topbar.pug",
    "bundles/frontend/theme/pug/css.pug": "bundles/frontend/theme/css.pug",
    "bundles/frontend/theme/pug/adminmenu.pug": "bundles/frontend/theme/adminmenu.pug",
    "bundles/frontend/theme/pug/layout.pug": "bundles/frontend/theme/layout.pug",
    "bundles/frontend/theme/pug/javascript.pug": "bundles/frontend/theme/javascript.pug",
    "bundles/frontend/theme/pug/404.pug": "bundles/frontend/theme/404.pug",
    "bundles/frontend/theme/pug/500.pug": "bundles/frontend/theme/500.pug"
  },
  "conditions": [
    {
      "matches": [
        "bundles/frontend/theme/swig",
        "bundles/frontend/view/swig"
      ],
      "rules": [
        { "arg": "template-engine", "value": "swig" }
      ]
    },
    {
      "matches": [
        "bundles/frontend/theme/pug",
        "bundles/frontend/view/pug"
      ],
      "rules": [
        { "arg": "template-engine", "value": "pug" }
      ]
    }
  ]
}

