#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"}); } }