diff --git a/bin/grav b/bin/grav
index ba8851bca..c33e0ba35 100755
--- a/bin/grav
+++ b/bin/grav
@@ -18,6 +18,7 @@ $app->addCommands(array(
new Grav\Console\InstallCommand(),
new Grav\Console\SetupCommand(),
new Grav\Console\CleanCommand(),
- new Grav\Console\NewCommand(),
+ new Grav\Console\ClearCacheCommand(),
+ new Grav\Console\NewProjectCommand(),
));
$app->run();
diff --git a/system/src/Grav/Console/ClearCacheCommand.php b/system/src/Grav/Console/ClearCacheCommand.php
new file mode 100644
index 000000000..226be5ad0
--- /dev/null
+++ b/system/src/Grav/Console/ClearCacheCommand.php
@@ -0,0 +1,82 @@
+setName("clear-cache")
+ ->setDescription("Clears Grav cache")
+ ->setHelp('The clear-cache deletes all cache files');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+
+
+ // Create a red output option
+ $output->getFormatter()->setStyle('red', new OutputFormatterStyle('red'));
+ $output->getFormatter()->setStyle('cyan', new OutputFormatterStyle('cyan'));
+ $output->getFormatter()->setStyle('green', new OutputFormatterStyle('green'));
+ $output->getFormatter()->setStyle('magenta', new OutputFormatterStyle('magenta'));
+
+ $this->cleanPaths($output);
+
+
+ }
+
+ // loops over the array of paths and deletes the files/folders
+ private function cleanPaths($output)
+ {
+ $output->writeln('');
+ $output->writeln('Clearing cache');
+ $output->writeln('');
+
+ $anything = false;
+
+ foreach($this->paths_to_remove as $path) {
+ $files = glob(ROOT_DIR . rtrim($path, '/') . '/*');
+
+ foreach ($files as $file) {
+ if (is_file($file) && @unlink($file)) $anything = true;
+ elseif (is_dir($file) && @$this->rrmdir($file)) $anything = true;
+ }
+
+ if ($anything) $output->writeln('Cleared: ' . $path . '*');
+ }
+
+ if (!$anything) {
+ $output->writeln('Nothing to clear...');
+ $output->writeln('');
+ }
+
+ }
+
+ // Recursively Delete folder - DANGEROUS! USE WITH CARE!!!!
+ private function rrmdir($dir) {
+ if (is_dir($dir)) {
+ $objects = scandir($dir);
+ foreach ($objects as $object) {
+ if ($object != "." && $object != "..") {
+ if (filetype($dir."/".$object) == "dir") $this->rrmdir($dir."/".$object); else unlink($dir."/".$object);
+ }
+ }
+ reset($objects);
+ rmdir($dir);
+ return true;
+ }
+ }
+}
+