/**
  * Set permissions on writebale directories for known frameworks.
  *
  * @return boolean True if permissions were skipped OR set succesfully
  * @throws Cake\Core\Exception\Exception
  */
 public function setPermissions()
 {
     Log::debug("Updating directory permissions");
     # Skip if no framework was detected
     if (!isset($this->options['framework_short'])) {
         Log::debug("* Skipping: unsupported/empty framework");
         return true;
     }
     # Skip if the framework does not use writable directories
     if (!isset($this->Info->frameworkMeta[$this->options['framework_short']]['writable_dirs'])) {
         Log::debug("* Skipping: framework does not use writeable directories");
         return true;
     }
     # Set permissions
     Log::debug("* Applying " . $this->options['framework_short'] . " folder permissions");
     foreach ($this->Info->frameworkMeta[$this->options['framework_short']]['writable_dirs'] as $directory) {
         if (!CakeboxUtility::setFolderPermissions($this->options['path'] . DS . $directory)) {
             throw new Exception("Error setting permissions.");
         }
     }
     return true;
 }