Outsourced file related operations

This commit is contained in:
2025-06-10 16:45:58 +02:00
parent 0300b5d61d
commit abaa4038ca
4 changed files with 42 additions and 3 deletions

22
src/FileService.cpp Normal file
View File

@@ -0,0 +1,22 @@
#include <sstream>
#include <fstream>
#include "../include/FileService.h"
#include "../include/Macros.h"
#include "../include/ShellService.h"
bool FileServices::doesNonEmptyFileExist(std::string path) {
std::ifstream file(path);
return file.good() && file.peek() != std::ifstream::traits_type::eof();
};
void FileServices::emptyFile(std::string path) {
std::stringstream cmd;
cmd << CAT_PATH << " " << NULL_PATH << " > " << path;
ShellService::exec(cmd.str().c_str());
};
void FileServices::createOrOverwriteFile(std::string path, std::string content) {
std::stringstream cmd;
cmd << ECHO_PATH << " " << content << " > " << path;
ShellService::exec(cmd.str().c_str());
};

View File

@@ -62,9 +62,13 @@ void HyprlandService::toggleClientFloating(Client& c) {
void HyprlandService::setFloatingRule(bool b) {
if (b) {
exec(SET_FLOATING_RULE);
FileServices::createOrOverwriteFile(FLOATING_RULE_CONF_FILE, FLOATING_RULE);
}
else {
exec(REMOVE_FLOATING_RULE);
FileServices::emptyFile(FLOATING_RULE_CONF_FILE);
}
};
bool HyprlandService::isFloatingRulePresent() {
return FileServices::doesNonEmptyFileExist(FLOATING_RULE_CONF_FILE);
};