error handling for log file handle

master
phanes 2023-02-16 03:49:56 -05:00
parent 79bc82e365
commit 004addd2b4
3 changed files with 21 additions and 1 deletions

View File

@ -134,6 +134,12 @@ void Conf::set_object_b(std::string keyname, bool & object_member, std::string f
this->slog.log_task( E_DEBUG, "SET_PROPERTY", "'" + keyname + "' " + std::to_string(object_member));
}
void removeTrailingSlash(std::string &str) {
if (!str.empty() && str.back() == '/') {
str.pop_back();
}
}
/**
* @brief Prepend the project root to a relative path
*
@ -147,6 +153,7 @@ void Conf::set_object_b(std::string keyname, bool & object_member, std::string f
*/
std::string Conf::prepend_project_root( std::string relative_path)
{
removeTrailingSlash(relative_path);
return this->project_root + "/" + relative_path;
}
@ -259,6 +266,7 @@ Shell Conf::get_shell_by_name( std::string name ) {
}
/**
* @class Conf
* @brief Loads the configuration for the application
@ -301,6 +309,8 @@ Conf::Conf(std::string filename, int LOG_LEVEL ): JSON_Loader(LOG_LEVEL ), slog(
// convert to an absolute path after all the interpolation is done.
this->project_root = get_absolute_path( this->project_root );
// all other paths are relative to project_root
set_object_s_derivedpath( "units_path", this->units_path, filename );
set_object_s_derivedpath( "logs_path", this->logs_path, filename );

View File

@ -118,6 +118,16 @@ int exec_pty(
FILE * stdout_log_fh = fopen( stdout_log_file.c_str(), "a+" );
FILE * stderr_log_fh = fopen( stderr_log_file.c_str(), "a+" );
if ( stdout_log_fh == NULL ) {
safe_perror( "Error opening STDOUT log file. Aborting.", &ttyOrig );
exit( 1 );
}
if ( stderr_log_fh == NULL ) {
safe_perror( "Error opening STDERR log file. Aborting.", &ttyOrig );
exit( 1 );
}
// create the pipes for the child process to write and read from using its stderr
int fd_child_stderr_pipe[2];

View File

@ -129,7 +129,7 @@ void Suite::get_units_from_dir( std::vector<std::string> * files, std::string pa
// you want here. Something like:
if ( strstr( hFile->d_name, ".units" ))
{
std::string full_path = path + hFile->d_name;
std::string full_path = path + "/" + hFile->d_name;
files->push_back( full_path );
}
}