text: /**
   * Autoinsert script tags (or other filebased tags) in an html file.
   *
   * ---------------------------------------------------------------
   *
   * Automatically inject <script> tags for javascript files and <link> tags
   * for css files.  Also automatically links an output file containing precompiled
   * templates using a <script> tag.
   *
   * For usage docs see:
   * 		https://github.com/Zolmeister/grunt-sails-linker
   *
   */
  module.exports = function(grunt) {
  
  	grunt.config.set('sails-linker', {
  		devJs: {
  			options: {
  				startTag: '<!--SCRIPTS-->',
  				endTag: '<!--SCRIPTS END-->',
  				fileTmpl: '<script src="%s"></script>',
  				appRoot: '.tmp/public'
  			},
  			files: {
  				'.tmp/public/**/*.html': require('../pipeline').jsFilesToInject,
  				'views/**/*.html': require('../pipeline').jsFilesToInject,
  				'views/layout.ejs': require('../pipeline').jsFilesToInject
  			}
  		},
  
  		devJsRelative: {
  			options: {
  				startTag: '<!--SCRIPTS-->',
  				endTag: '<!--SCRIPTS END-->',
  				fileTmpl: '<script src="%s"></script>',
  				appRoot: '.tmp/public',
  				relative: true
  			},
  			files: {
  				'.tmp/public/**/*.html': require('../pipeline').jsFilesToInject,
  				'views/**/*.html': require('../pipeline').jsFilesToInject,
  				'views/layout.ejs': require('../pipeline').jsFilesToInject
  			}
  		},
  
  		prodJs: {
  			options: {
  				startTag: '<!--SCRIPTS-->',
  				endTag: '<!--SCRIPTS END-->',
  				fileTmpl: '<script src="%s"></script>',
  				appRoot: '.tmp/public'
  			},
  			files: {
  				'.tmp/public/**/*.html': ['.tmp/public/min/production.min.js'],
  				'views/**/*.html': ['.tmp/public/min/production.min.js'],
  				'views/layout.ejs': ['.tmp/public/min/production.min.js']
  			}
  		},
  
  		prodJsRelative: {
  			options: {
  				startTag: '<!--SCRIPTS-->',
  				endTag: '<!--SCRIPTS END-->',
  				fileTmpl: '<script src="%s"></script>',
  				appRoot: '.tmp/public',
  				relative: true
  			},
  			files: {
  				'.tmp/public/**/*.html': ['.tmp/public/min/production.min.js'],
  				'views/**/*.html': ['.tmp/public/min/production.min.js'],
  				'views/layout.ejs': ['.tmp/public/min/production.min.js']
  			}
  		},
  
  		devStyles: {
  			options: {
  				startTag: '<!--STYLES-->',
  				endTag: '<!--STYLES END-->',
  				fileTmpl: '<link rel="stylesheet" href="%s">',
  				appRoot: '.tmp/public'
  			},
  
  			files: {
  				'.tmp/public/**/*.html': require('../pipeline').cssFilesToInject,
  				'views/**/*.html': require('../pipeline').cssFilesToInject,
  				'views/layout.ejs': require('../pipeline').cssFilesToInject
  			}
  		},
  
  		devStylesRelative: {
  			options: {
  				startTag: '<!--STYLES-->',
  				endTag: '<!--STYLES END-->',
  				fileTmpl: '<link rel="stylesheet" href="%s">',
  				appRoot: '.tmp/public',
  				relative: true
  			},
  
  			files: {
  				'.tmp/public/**/*.html': require('../pipeline').cssFilesToInject,
  				'views/**/*.html': require('../pipeline').cssFilesToInject,
  				'views/layout.ejs': require('../pipeline').cssFilesToInject
  			}
  		},
  
  		prodStyles: {
  			options: {
  				startTag: '<!--STYLES-->',
  				endTag: '<!--STYLES END-->',
  				fileTmpl: '<link rel="stylesheet" href="%s">',
  				appRoot: '.tmp/public'
  			},
  			files: {
  				'.tmp/public/index.html': ['.tmp/public/min/production.min.css'],
  				'views/**/*.html': ['.tmp/public/min/production.min.css'],
  				'views/layout.ejs': ['.tmp/public/min/production.min.css']
  			}
  		},
  
  		prodStylesRelative: {
  			options: {
  				startTag: '<!--STYLES-->',
  				endTag: '<!--STYLES END-->',
  				fileTmpl: '<link rel="stylesheet" href="%s">',
  				appRoot: '.tmp/public',
  				relative: true
  			},
  			files: {
  				'.tmp/public/index.html': ['.tmp/public/min/production.min.css'],
  				'views/**/*.html': ['.tmp/public/min/production.min.css'],
  				'views/layout.ejs': ['.tmp/public/min/production.min.css']
  			}
  		},
  
  		// Bring in JST template object
  		devTpl: {
  			options: {
  				startTag: '<!--TEMPLATES-->',
  				endTag: '<!--TEMPLATES END-->',
  				fileTmpl: '<script type="text/javascript" src="%s"></script>',
  				appRoot: '.tmp/public'
  			},
  			files: {
  				'.tmp/public/index.html': ['.tmp/public/jst.js'],
  				'views/**/*.html': ['.tmp/public/jst.js'],
  				'views/layout.ejs': ['.tmp/public/jst.js']
  			}
  		},
  
  		devJsJade: {
  			options: {
  				startTag: '// SCRIPTS',
  				endTag: '// SCRIPTS END',
  				fileTmpl: 'script(src="%s")',
  				appRoot: '.tmp/public'
  			},
  			files: {
  				'views/**/*.jade': require('../pipeline').jsFilesToInject
  			}
  		},
  
  		devJsRelativeJade: {
  			options: {
  				startTag: '// SCRIPTS',
  				endTag: '// SCRIPTS END',
  				fileTmpl: 'script(src="%s")',
  				appRoot: '.tmp/public',
  				relative: true
  			},
  			files: {
  				'views/**/*.jade': require('../pipeline').jsFilesToInject
  			}
  		},
  
  		prodJsJade: {
  			options: {
  				startTag: '// SCRIPTS',
  				endTag: '// SCRIPTS END',
  				fileTmpl: 'script(src="%s")',
  				appRoot: '.tmp/public'
  			},
  			files: {
  				'views/**/*.jade': ['.tmp/public/min/production.min.js']
  			}
  		},
  
  		prodJsRelativeJade: {
  			options: {
  				startTag: '// SCRIPTS',
  				endTag: '// SCRIPTS END',
  				fileTmpl: 'script(src="%s")',
  				appRoot: '.tmp/public',
  				relative: true
  			},
  			files: {
  				'views/**/*.jade': ['.tmp/public/min/production.min.js']
  			}
  		},
  
  		devStylesJade: {
  			options: {
  				startTag: '// STYLES',
  				endTag: '// STYLES END',
  				fileTmpl: 'link(rel="stylesheet", href="%s")',
  				appRoot: '.tmp/public'
  			},
  
  			files: {
  				'views/**/*.jade': require('../pipeline').cssFilesToInject
  			}
  		},
  
  		devStylesRelativeJade: {
  			options: {
  				startTag: '// STYLES',
  				endTag: '// STYLES END',
  				fileTmpl: 'link(rel="stylesheet", href="%s")',
  				appRoot: '.tmp/public',
  				relative: true
  			},
  
  			files: {
  				'views/**/*.jade': require('../pipeline').cssFilesToInject
  			}
  		},
  
  		prodStylesJade: {
  			options: {
  				startTag: '// STYLES',
  				endTag: '// STYLES END',
  				fileTmpl: 'link(rel="stylesheet", href="%s")',
  				appRoot: '.tmp/public'
  			},
  			files: {
  				'views/**/*.jade': ['.tmp/public/min/production.min.css']
  			}
  		},
  
  		prodStylesRelativeJade: {
  			options: {
  				startTag: '// STYLES',
  				endTag: '// STYLES END',
  				fileTmpl: 'link(rel="stylesheet", href="%s")',
  				appRoot: '.tmp/public',
  				relative: true
  			},
  			files: {
  				'views/**/*.jade': ['.tmp/public/min/production.min.css']
  			}
  		},
  
  		// Bring in JST template object
  		devTplJade: {
  			options: {
  				startTag: '// TEMPLATES',
  				endTag: '// TEMPLATES END',
  				fileTmpl: 'script(type="text/javascript", src="%s")',
  				appRoot: '.tmp/public'
  			},
  			files: {
  				'views/**/*.jade': ['.tmp/public/jst.js']
  			}
  		},
  		//Admin
  		devAdminJs: {
  	    options: {
  	      startTag: '<!--SCRIPTS-->',
  	      endTag: '<!--SCRIPTS END-->',
  	      fileTmpl: '<script src="%s"></script>',
  	      appRoot: '.tmp/public'
  	    },
  	    files: {
  	      'views/admin.ejs': require('../pipeline').jsAdminFilesToInject
  	    }
  	  },
  
  	  devAdminJsRelative: {
  	    options: {
  	      startTag: '<!--SCRIPTS-->',
  	      endTag: '<!--SCRIPTS END-->',
  	      fileTmpl: '<script src="%s"></script>',
  	      appRoot: '.tmp/public',
  	      relative: true
  	    },
  	    files: {
  	      'views/admin.ejs': require('../pipeline').jsAdminFilesToInject
  	    }
  	  },
  
  	  prodAdminJs: {
  	    options: {
  	      startTag: '<!--SCRIPTS-->',
  	      endTag: '<!--SCRIPTS END-->',
  	      fileTmpl: '<script src="%s"></script>',
  	      appRoot: '.tmp/public'
  	    },
  	    files: {
  	      'views/admin.ejs': ['.tmp/public/min/admin/production.min.js']
  	    }
  	  },
  
  	  prodAdminJsRelative: {
  	    options: {
  	      startTag: '<!--SCRIPTS-->',
  	      endTag: '<!--SCRIPTS END-->',
  	      fileTmpl: '<script src="%s"></script>',
  	      appRoot: '.tmp/public',
  	      relative: true
  	    },
  	    files: {
  	      'views/admin.ejs': ['.tmp/public/min/admin/production.min.js']
  	    }
  	  },
  
  	  devAdminStyles: {
  	    options: {
  	      startTag: '<!--STYLES-->',
  	      endTag: '<!--STYLES END-->',
  	      fileTmpl: '<link rel="stylesheet" href="%s">',
  	      appRoot: '.tmp/public'
  	    },
  
  	    files: {
  	      'views/admin.ejs': require('../pipeline').cssAdminFilesToInject
  	    }
  	  },
  
  	  devAdminStylesRelative: {
  	    options: {
  	      startTag: '<!--STYLES-->',
  	      endTag: '<!--STYLES END-->',
  	      fileTmpl: '<link rel="stylesheet" href="%s">',
  	      appRoot: '.tmp/public',
  	      relative: true
  	    },
  
  	    files: {
  	      'views/admin.ejs': require('../pipeline').cssAdminFilesToInject
  	    }
  	  },
  
  	  prodAdminStyles: {
  	    options: {
  	      startTag: '<!--STYLES-->',
  	      endTag: '<!--STYLES END-->',
  	      fileTmpl: '<link rel="stylesheet" href="%s">',
  	      appRoot: '.tmp/public'
  	    },
  	    files: {
  	      'views/admin.ejs': ['.tmp/public/min/admin/production.min.css']
  	    }
  	  },
  
  	  prodAdminStylesRelative: {
  	    options: {
  	      startTag: '<!--STYLES-->',
  	      endTag: '<!--STYLES END-->',
  	      fileTmpl: '<link rel="stylesheet" href="%s">',
  	      appRoot: '.tmp/public',
  	      relative: true
  	    },
  	    files: {
  	      'views/admin.ejs': ['.tmp/public/min/admin/production.min.css']
  	    }
  	  }
  	});
  
  	grunt.loadNpmTasks('grunt-sails-linker');
  };
  