.
Some checks failed
Dropshell Test / Build_and_Test (push) Failing after 24s

This commit is contained in:
Your Name 2025-05-06 22:31:57 +12:00
parent ac797e111c
commit cca3ee9679
3 changed files with 19 additions and 35 deletions

View File

@ -176,8 +176,7 @@ bool server_env_manager::run_remote_template_command_and_capture_output(const st
if (scommand.get_command_to_run().empty())
return false;
cMode mode = (silent ? cMode::Silent : cMode::None);
mode |= cMode::CaptureOutput;
cMode mode = cMode::CaptureOutput | cMode::RawCommand;
return execute_ssh_command(get_SSH_INFO(), scommand, mode, &output);
}

View File

@ -88,6 +88,8 @@ bool execute_local_command(const sCommand & command, cMode mode, std::string * o
if (hasFlag(mode, cMode::CaptureOutput)) {
ASSERT_MSG(output != nullptr, "Capture output mode requires an output string to be provided");
ASSERT_MSG(is_raw(mode), "Capture output mode requires raw command mode");
ASSERT_MSG(!hasFlag(mode, cMode::Silent), "Silent mode is not allowed with capture output mode");
return execute_local_command_and_capture_output(command, output, mode);
}

View File

@ -16,6 +16,22 @@ enum class cMode {
CaptureOutput = 4,
RawCommand = 8
};
enum class cStyle {
Safe = 0,
Raw = 1
};
inline cMode operator&(cMode lhs, cMode rhs) {return static_cast<cMode>(static_cast<int>(lhs) & static_cast<int>(rhs));}
inline cMode operator+(cMode lhs, cMode rhs) {return static_cast<cMode>(static_cast<int>(lhs) | static_cast<int>(rhs));}
inline cMode operator-(cMode lhs, cMode rhs) {return static_cast<cMode>(static_cast<int>(lhs) & ~static_cast<int>(rhs));}
inline cMode operator|(cMode lhs, cMode rhs) {return static_cast<cMode>(static_cast<int>(lhs) | static_cast<int>(rhs));}
inline cMode operator|=(cMode & lhs, cMode rhs) {return lhs = lhs | rhs;}
inline bool hasFlag(cMode mode, cMode flag) {return (mode & flag) == flag;}
inline bool is_safe(cStyle style) { return style == cStyle::Safe; }
inline bool is_raw(cStyle style) { return style == cStyle::Raw; }
inline bool is_raw(cMode mode) { return hasFlag(mode, cMode::RawCommand); }
inline cStyle getStyle(cMode mode) { return is_raw(mode) ? cStyle::Raw : cStyle::Safe; }
typedef struct sSSHInfo {
std::string host;
@ -31,15 +47,7 @@ std::string makesafecmd(const std::string& command);
// ------------------------------------------------------------------------------------------------
enum class cStyle {
Safe = 0,
Raw = 1
};
inline cStyle getStyle(cMode mode) { return is_raw(mode) ? cStyle::Raw : cStyle::Safe; }
inline bool is_safe(cStyle style) { return style == cStyle::Safe; }
inline bool is_raw(cStyle style) { return style == cStyle::Raw; }
inline bool is_raw(cMode mode) { return hasFlag(mode, cMode::RawCommand); }
// class to hold a command to run on the remote server.
class sCommand {
@ -68,31 +76,6 @@ class sCommand {
};
// Bitwise AND operator for cMode
inline cMode operator&(cMode lhs, cMode rhs) {
return static_cast<cMode>(
static_cast<int>(lhs) & static_cast<int>(rhs)
);
}
inline bool hasFlag(cMode mode, cMode flag) {
return (mode & flag) == flag;
}
inline cMode operator-(cMode lhs, cMode rhs) {
return static_cast<cMode>(
static_cast<int>(lhs) & ~static_cast<int>(rhs)
);
}
inline cMode operator|(cMode lhs, cMode rhs) {
return static_cast<cMode>(static_cast<int>(lhs) | static_cast<int>(rhs));
}
inline cMode operator|=(cMode & lhs, cMode rhs) {
return lhs = lhs | rhs;
}
} // namespace dropshell