From 4ed044b93ce1e4b42d43ea5ae72bb899dbb06f72 Mon Sep 17 00:00:00 2001 From: jules Date: Tue, 24 Mar 2015 16:56:20 +0000 Subject: [PATCH] Introjucer: prevented copying hidden source-control sub-folders when module code is copied to the project folder. --- .../Project Saving/jucer_ProjectSaver.h | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h index c209d7bb71..3f24e8dfb1 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h @@ -176,6 +176,11 @@ public: return true; } + static bool shouldFolderBeIgnoredWhenCopying (const File& f) + { + return f.getFileName() == ".git" || f.getFileName() == ".svn" || f.getFileName() == ".cvs"; + } + bool copyFolder (const File& source, const File& dest) { if (source.isDirectory() && dest.createDirectory()) @@ -185,18 +190,25 @@ public: for (int i = 0; i < subFiles.size(); ++i) { - const File target (dest.getChildFile (subFiles.getReference(i).getFileName())); + const File f (subFiles.getReference(i)); + const File target (dest.getChildFile (f.getFileName())); filesCreated.add (target); - if (! subFiles.getReference(i).copyFileTo (target)) + + if (! f.copyFileTo (target)) return false; } - subFiles.clear(); - source.findChildFiles (subFiles, File::findDirectories, false); + Array subFolders; + source.findChildFiles (subFolders, File::findDirectories, false); - for (int i = 0; i < subFiles.size(); ++i) - if (! copyFolder (subFiles.getReference(i), dest.getChildFile (subFiles.getReference(i).getFileName()))) - return false; + for (int i = 0; i < subFolders.size(); ++i) + { + const File f (subFolders.getReference(i)); + + if (! shouldFolderBeIgnoredWhenCopying (f)) + if (! copyFolder (f, dest.getChildFile (f.getFileName()))) + return false; + } return true; }