Manager: Add function to check if file is system type
This commit is contained in:
+12
-9
@@ -45,7 +45,6 @@ void Dotfile::add(const std::vector<std::string>& targets)
|
|||||||
std::vector<size_t> systemTargets;
|
std::vector<size_t> systemTargets;
|
||||||
|
|
||||||
// Separate home and system targets
|
// Separate home and system targets
|
||||||
bool isSystem = false;
|
|
||||||
for (size_t i = 0; i < targets.size(); ++i) {
|
for (size_t i = 0; i < targets.size(); ++i) {
|
||||||
if (!std::filesystem::is_regular_file(targets.at(i))
|
if (!std::filesystem::is_regular_file(targets.at(i))
|
||||||
&& !std::filesystem::is_directory(targets.at(i))
|
&& !std::filesystem::is_directory(targets.at(i))
|
||||||
@@ -54,14 +53,7 @@ void Dotfile::add(const std::vector<std::string>& targets)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
isSystem = false;
|
if (isSystemTarget(targets.at(i))) {
|
||||||
for (const auto& systemDirectory : s_systemDirectories) {
|
|
||||||
if (targets.at(i).find(systemDirectory) == 0) {
|
|
||||||
isSystem = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isSystem) {
|
|
||||||
systemTargets.push_back(i);
|
systemTargets.push_back(i);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -218,4 +210,15 @@ bool Dotfile::include(const std::filesystem::path& path, const std::vector<std::
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Dotfile::isSystemTarget(const std::string& target)
|
||||||
|
{
|
||||||
|
for (const auto& systemDirectory : s_systemDirectories) {
|
||||||
|
if (target.find(systemDirectory) == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Util
|
} // namespace Util
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ private:
|
|||||||
void forEachDotfile(const std::vector<std::string>& targets, const std::function<void(std::filesystem::directory_entry, size_t, size_t)>& callback);
|
void forEachDotfile(const std::vector<std::string>& targets, const std::function<void(std::filesystem::directory_entry, size_t, size_t)>& callback);
|
||||||
bool filter(const std::filesystem::path& path);
|
bool filter(const std::filesystem::path& path);
|
||||||
bool include(const std::filesystem::path& path, const std::vector<std::string>& targets);
|
bool include(const std::filesystem::path& path, const std::vector<std::string>& targets);
|
||||||
|
bool isSystemTarget(const std::string& target);
|
||||||
|
|
||||||
static std::vector<ExcludePath> s_excludePaths;
|
static std::vector<ExcludePath> s_excludePaths;
|
||||||
static std::vector<std::filesystem::path> s_systemDirectories;
|
static std::vector<std::filesystem::path> s_systemDirectories;
|
||||||
|
|||||||
Reference in New Issue
Block a user