add force flag for cp helper
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-v4.0.0-dev This commit looks good

This commit is contained in:
Robin Müller 2023-06-06 11:11:16 +02:00
parent caa2800a7a
commit aec383b974
No known key found for this signature in database
GPG Key ID: 11D4952C8CCEF814
2 changed files with 7 additions and 1 deletions

View File

@ -243,6 +243,9 @@ ReturnValue_t CoreController::executeAction(ActionId_t actionId, MessageQueueId_
return result;
}
std::ostringstream oss("cp ", std::ostringstream::ate);
if (parser.isForceOptSet()) {
oss << "-f ";
}
if (parser.isRecursiveOptSet()) {
oss << "-r ";
}

View File

@ -242,19 +242,22 @@ class CpHelperParser {
CpHelperParser(const uint8_t* data, size_t maxLen) : data(data), maxLen(maxLen) {}
ReturnValue_t parse() {
if (maxLen < 1) {
if (maxLen < 2) {
return SerializeIF::STREAM_TOO_SHORT;
}
recursiveOpt = data[0];
forceOpt = data[1];
return parseDestTargetString(data + 1, maxLen - 1, destTgt);
}
const SourceTargetPair& destTgtPair() const { return destTgt; }
bool isRecursiveOptSet() const { return recursiveOpt; }
bool isForceOptSet() const { return forceOpt; }
private:
const uint8_t* data;
size_t maxLen;
bool recursiveOpt = false;
bool forceOpt = false;
SourceTargetPair destTgt;
};