From c66b8ded10f0d5e872e507fdff3010f732aa5449 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 2 Apr 2020 16:06:35 +0200 Subject: Split main.cpp into separate files --- got.cpp | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 got.cpp (limited to 'got.cpp') diff --git a/got.cpp b/got.cpp new file mode 100644 index 0000000..e60b4c6 --- /dev/null +++ b/got.cpp @@ -0,0 +1,45 @@ +#include +#include +#include "command.h" +#include "got.h" +#include "sqliteutil.h" + + +namespace got { + std::string getDBpath() { + return std::string{getenv("HOME")} + "/.timetrap.db"; + } + + // Returns {sheet, note} + std::optional> getRunning() { + std::string output = runCommand({"sqlite3", getDBpath(), ".mode csv", "select sheet, note from entries where end is null"}); + auto table = sqlite::parseCSV(move(output)); + if (table.empty()) return std::nullopt; + else return std::make_pair(table[0][0], table[0][1]); + } + + std::vector getSheets() { + std::string output = runCommand({"sqlite3", getDBpath(), "select distinct sheet from entries"}); + std::istringstream ss{output}; + std::vector lines; + std::string line; + while (std::getline(ss, line)) { + if (line.size() > 0) lines.push_back(move(line)); + } + std::sort(lines.begin(), lines.end()); + return lines; + } + + void editRunning(const std::string &descr) { + runCommand({"got", "edit", descr}); + } + + void checkOut() { + runCommand({"got", "out"}); + } + + void checkIn(const std::string &sheet) { + runCommand({"got", "sheet", sheet}); + runCommand({"got", "in"}); + } +} -- cgit v1.2.3-70-g09d2