1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
// SPDX-License-Identifier: LGPL-3.0-or-later
// Author: Kristian Lytje
#pragma once
#include <shell/Option.h>
#include <string>
namespace ausaxs::shell {
struct CommandResult {
std::string out;
int exit_code;
};
class Command {
public:
Command() noexcept;
Command(const std::string& cmd);
void set(const std::string& cmd);
std::string get() const;
Command& append(const shell::Argument& arg);
Command& append(const shell::Flag& flag);
Command& append(const std::string& arg);
Command& prepend(const std::string& arg);
Command& mute();
CommandResult execute() const;
private:
std::string cmd;
};
}
|