Skip to content

Commit

Permalink
unistdpp: Move fatalOnError
Browse files Browse the repository at this point in the history
  • Loading branch information
timower committed Dec 2, 2023
1 parent 2c826ae commit bf35543
Show file tree
Hide file tree
Showing 12 changed files with 56 additions and 56 deletions.
6 changes: 3 additions & 3 deletions apps/rocket/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -346,8 +346,8 @@ class LauncherState : public StateBase<LauncherWidget> {
// Get the reason
auto irq = unistdpp::readFile("/sys/power/pm_wakeup_irq");
if (!irq.has_value()) {
std::cout << "Error getting reason: " << unistdpp::toString(irq.error())
<< std::endl;
std::cout << "Error getting reason: "
<< unistdpp::to_string(irq.error()) << std::endl;

// If there is no irq it must be the user which pressed the button:
return true;
Expand Down Expand Up @@ -596,7 +596,7 @@ main(int argc, char* argv[]) {

std::signal(SIGCHLD, cleanup);

fatalOnError(runApp(LauncherWidget()));
unistdpp::fatalOnError(runApp(LauncherWidget()));

auto fb = fb::FrameBuffer::open();
if (fb.has_value()) {
Expand Down
2 changes: 1 addition & 1 deletion apps/tilem/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ int
main(int argc, char* argv[]) {
const auto* calcName = argc > 1 ? argv[1] : calc_default_rom;

fatalOnError(runApp(Navigator(tilem::Calculator(calcName))));
unistdpp::fatalOnError(runApp(Navigator(tilem::Calculator(calcName))));

return EXIT_SUCCESS;
}
25 changes: 13 additions & 12 deletions apps/yaft/YaftWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ void
initSignalHandler(AppContext& ctx) {
globalCtx = &ctx;

struct sigaction sigact{};
struct sigaction sigact {};
memset(&sigact, 0, sizeof(struct sigaction));
sigact.sa_handler = sigHandler;
sigact.sa_flags = SA_RESTART;
Expand All @@ -42,12 +42,12 @@ initSignalHandler(AppContext& ctx) {

bool
forkAndExec(int* master,
const char* cmd,
char* const argv[],
int lines,
int cols) {
const char* cmd,
char* const argv[],
int lines,
int cols) {
pid_t pid = 0;
struct winsize ws{};
struct winsize ws {};
ws.ws_row = lines;
ws.ws_col = cols;
/* XXX: this variables are UNUSED (man tty_ioctl),
Expand All @@ -58,7 +58,8 @@ forkAndExec(int* master,
pid = eforkpty(master, nullptr, nullptr, &ws);
if (pid < 0) {
return false;
} if (pid == 0) { /* child */
}
if (pid == 0) { /* child */
setenv("TERM", termName, 1);
execvp(cmd, argv);
/* never reach here */
Expand Down Expand Up @@ -98,10 +99,10 @@ YaftState::init(rmlib::AppContext& ctx, const rmlib::BuildContext& /*unused*/) {
initSignalHandler(ctx);

if (!forkAndExec(&term->fd,
getWidget().cmd,
getWidget().argv,
term->lines,
term->cols)) {
getWidget().cmd,
getWidget().argv,
term->lines,
term->cols)) {
puts("Failed to fork!");
std::exit(EXIT_FAILURE);
}
Expand All @@ -112,7 +113,7 @@ YaftState::init(rmlib::AppContext& ctx, const rmlib::BuildContext& /*unused*/) {

// Only update if the buffer isn't full. Otherwise more data is comming
// probably.
if (size != buf.size()) {
if (size != int(buf.size())) {
setState([&](auto& self) {
parse(self.term.get(), reinterpret_cast<uint8_t*>(buf.data()), size);
});
Expand Down
2 changes: 1 addition & 1 deletion apps/yaft/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ main(int argc, char* argv[]) {

auto cfg = loadConfigOrMakeDefault();

fatalOnError(runApp(Yaft(cmd, args, std::move(cfg))));
unistdpp::fatalOnError(runApp(Yaft(cmd, args, std::move(cfg))));

return 0;
}
4 changes: 2 additions & 2 deletions libs/rMlib/EmulatedInput.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ struct FakeInputDevice : public InputDeviceBase {

pipes = unistdpp::pipe()
.or_else([](auto err) {
std::cerr << unistdpp::toString(err) << "\n";
std::cerr << unistdpp::to_string(err) << "\n";
std::exit(EXIT_FAILURE);
})
.value();
Expand Down Expand Up @@ -83,7 +83,7 @@ InputManager::waitForInput(std::vector<pollfd>& extraFds,

auto ret = unistdpp::poll(extraFds, timeout);
if (!ret) {
std::cerr << "Poll failure: " << unistdpp::toString(ret.error()) << "\n";
std::cerr << "Poll failure: " << unistdpp::to_string(ret.error()) << "\n";
return;
}

Expand Down
16 changes: 0 additions & 16 deletions libs/rMlib/include/Error.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,3 @@ using ErrorOr = tl::expected<T, E>;

template<typename E = Error>
using OptError = tl::expected<void, E>;

template<typename T, typename E>
T
fatalOnError(tl::expected<T, E> error) {
if (!error.has_value()) {
using namespace std;
std::cerr << "FATAL: " << to_string(error.error()) << std::endl;
std::abort();
}

if constexpr (std::is_void_v<T>) {
return;
} else {
return *error;
}
}
1 change: 1 addition & 0 deletions libs/rm2fb/Message.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ template<typename Variant, auto idx = 0>
unistdpp::Result<Variant>
read(const unistdpp::FD& fd, int32_t index) {
if constexpr (idx >= std::variant_size_v<Variant>) {
(void)index;
return tl::unexpected(std::errc::bad_message);
} else {
if (idx == index) {
Expand Down
14 changes: 7 additions & 7 deletions libs/rm2fb/Server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ getTcpSocket(int port) {
bool
doTCPUpdate(unistdpp::FD& fd, const UpdateParams& params) {
if (auto res = fd.writeAll(params); !res) {
std::cerr << "Error writing: " << toString(res.error()) << "\n";
std::cerr << "Error writing: " << to_string(res.error()) << "\n";
fd.close();
return false;
}
Expand All @@ -152,7 +152,7 @@ doTCPUpdate(unistdpp::FD& fd, const UpdateParams& params) {
const auto writeSize = size * sizeof(uint16_t);
auto res = fd.writeAll(buffer.data(), writeSize);
if (!res) {
std::cerr << "Error writing: " << toString(res.error()) << "\n";
std::cerr << "Error writing: " << to_string(res.error()) << "\n";
fd.close();
return false;
}
Expand All @@ -166,7 +166,7 @@ readControlMessage(ControlSocket& serverSock, Fn&& fn) {
serverSock.recvfrom<UpdateParams>()
.and_then(std::forward<Fn>(fn))
.or_else([](auto err) {
std::cerr << "Recvfrom fail: " << unistdpp::toString(err) << "\n";
std::cerr << "Recvfrom fail: " << to_string(err) << "\n";
});
}

Expand Down Expand Up @@ -213,7 +213,7 @@ serverMain(int argc, char* argv[], char** envp) { // NOLINT
return getTcpSocket(tcp_port);
}();
if (!tcpFd) {
std::cerr << "Unable to start TCP listener: " << toString(tcpFd.error())
std::cerr << "Unable to start TCP listener: " << to_string(tcpFd.error())
<< "\n";
}

Expand Down Expand Up @@ -269,7 +269,7 @@ serverMain(int argc, char* argv[], char** envp) { // NOLINT
[](const auto& client) { return waitFor(client, Wait::Read); });

if (auto res = unistdpp::poll(pollfds); !res) {
std::cerr << "Poll error: " << toString(res.error()) << "\n";
std::cerr << "Poll error: " << to_string(res.error()) << "\n";
break;
}

Expand Down Expand Up @@ -307,7 +307,7 @@ serverMain(int argc, char* argv[], char** envp) { // NOLINT
.transform(
[&](auto client) { tcpClients.emplace_back(std::move(client)); })
.or_else([](auto err) {
std::cerr << "Client accept errror: " << toString(err) << "\n";
std::cerr << "Client accept errror: " << to_string(err) << "\n";
});
}

Expand All @@ -334,7 +334,7 @@ serverMain(int argc, char* argv[], char** envp) { // NOLINT
}
})
.or_else([&](auto err) {
std::cerr << "Reading input: " << toString(err) << "\n";
std::cerr << "Reading input: " << to_string(err) << "\n";
if (err == unistdpp::FD::eof_error) {
clientSock.close();
}
Expand Down
18 changes: 17 additions & 1 deletion libs/unistdpp/include/unistdpp/error.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,26 @@ getErrno() {
}

inline std::string
toString(std::errc error) {
to_string(std::errc error) { // NOLINT
return std::make_error_code(error).message();
}

template<typename T, typename E>
T
fatalOnError(tl::expected<T, E> error, std::string_view msg = "") {
if (!error.has_value()) {
using namespace std;
std::cerr << "FATAL: " << msg << to_string(error.error()) << std::endl;
std::abort();
}

if constexpr (std::is_void_v<T>) {
return;
} else {
return *error;
}
}

template<typename T>
struct WrapperTraits<Result<T>> {
static_assert(
Expand Down
6 changes: 3 additions & 3 deletions test/unit/TestUnistdpp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,19 @@ template<typename T>
struct StringMaker<Result<T>> {
static std::string convert(const Result<T>& value) {
return value.has_value() ? StringMaker<T>::convert(*value)
: "Error: " + toString(value.error());
: "Error: " + to_string(value.error());
}
};
template<>
struct StringMaker<Result<void>> {
static std::string convert(const Result<void>& value) {
return value.has_value() ? "OK" : "Error: " + toString(value.error());
return value.has_value() ? "OK" : "Error: " + to_string(value.error());
}
};
} // namespace Catch

TEST_CASE("error", "[unistdpp]") {
REQUIRE(toString(std::errc::invalid_argument) == "Invalid argument");
REQUIRE(to_string(std::errc::invalid_argument) == "Invalid argument");
}

TEST_CASE("open", "[unistdpp]") {
Expand Down
8 changes: 4 additions & 4 deletions tools/rm2fb-emu/rm2fb-emu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ main(int argc, char* argv[]) {
int port = atoi(argv[2]);
auto sock = getClientSock(argv[1], port);
if (!sock.has_value()) {
std::cout << "Couldn't get tcp socket: " << toString(sock.error()) << "\n";
std::cout << "Couldn't get tcp socket: " << to_string(sock.error()) << "\n";
return EXIT_FAILURE;
}

Expand Down Expand Up @@ -87,7 +87,7 @@ main(int argc, char* argv[]) {
ClientMsg input = Input{ touchEv.location.x, touchEv.location.y, type };
auto res = sendMessage(*sock, input);
if (!res) {
std::cerr << "Error writing: " << toString(res.error()) << "\n";
std::cerr << "Error writing: " << to_string(res.error()) << "\n";
}
}

Expand All @@ -97,7 +97,7 @@ main(int argc, char* argv[]) {

auto msgOrErr = sock->readAll<UpdateParams>();
if (!msgOrErr) {
std::cerr << "Error reading: " << toString(msgOrErr.error()) << "\n";
std::cerr << "Error reading: " << to_string(msgOrErr.error()) << "\n";
break;
}
auto msg = *msgOrErr;
Expand All @@ -117,7 +117,7 @@ main(int argc, char* argv[]) {
int readSize = bufSize * sizeof(uint16_t);
auto res = sock->readAll(buffer.data(), readSize);
if (!res) {
std::cerr << "Error reading: " << toString(res.error()) << "\n";
std::cerr << "Error reading: " << to_string(res.error()) << "\n";
break;
}

Expand Down
10 changes: 4 additions & 6 deletions tools/rm2fb-emu/rm2fb-test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ doScreenshot(unistdpp::FD& sock, std::vector<std::string_view> args) {
sendMessage(sock, ClientMsg(GetUpdate{}));
auto msgOrErr = sock.readAll<UpdateParams>();
if (!msgOrErr) {
std::cerr << "Error reading: " << toString(msgOrErr.error()) << "\n";
std::cerr << "Error reading: " << to_string(msgOrErr.error()) << "\n";
return false;
}
auto msg = *msgOrErr;
Expand All @@ -40,7 +40,7 @@ doScreenshot(unistdpp::FD& sock, std::vector<std::string_view> args) {

auto res = sock.readAll(buffer.data(), bufSize);
if (!res) {
std::cerr << "Error reading: " << toString(res.error()) << "\n";
std::cerr << "Error reading: " << to_string(res.error()) << "\n";
return false;
}

Expand Down Expand Up @@ -102,7 +102,7 @@ main(int argc, char* argv[]) {
int port = atoi(argv[2]); // NOLINT
auto sock = getClientSock(argv[1], port); // NOLINT
if (!sock.has_value()) {
std::cout << "Couldn't get tcp socket: " << toString(sock.error()) << "\n";
std::cout << "Couldn't get tcp socket: " << to_string(sock.error()) << "\n";
return EXIT_FAILURE;
}

Expand All @@ -111,7 +111,5 @@ main(int argc, char* argv[]) {
args.emplace_back(argv[i]); // NOLINT
}

actionFn(*sock, std::move(args));

return EXIT_SUCCESS;
return actionFn(*sock, std::move(args)) ? EXIT_SUCCESS : EXIT_FAILURE;
}

0 comments on commit bf35543

Please sign in to comment.