mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-23 05:18:44 +08:00
localPackages/hpcstat: initdb command
This commit is contained in:
parent
58786cef0e
commit
e5fd732788
@ -42,6 +42,8 @@ namespace hpcstat::sql
|
||||
};
|
||||
// 序列化任意数据,用于之后签名
|
||||
std::string serialize(auto data);
|
||||
// 初始化数据库
|
||||
bool initdb();
|
||||
// 将数据写入数据库
|
||||
bool writedb(auto value);
|
||||
// 查询 bjobs -a 的结果中,有哪些是已经被写入到数据库中的(按照任务 id 和提交时间计算),返回未被写入的任务 id
|
||||
|
@ -14,7 +14,8 @@ int main(int argc, const char** argv)
|
||||
using namespace std::literals;
|
||||
std::vector<std::string> args(argv, argv + argc);
|
||||
|
||||
if (args.size() == 1) { std::cout << "Usage: hpcstat login|logout|submitjob|finishjob|verify\n"; return 1; }
|
||||
if (args.size() == 1) { std::cout << "Usage: hpcstat initdb|login|logout|submitjob|finishjob|verify\n"; return 1; }
|
||||
else if (args[1] == "initdb") { if (!sql::initdb()) { std::cerr << "Failed to initialize database\n"; return 1; } }
|
||||
else if (args[1] == "login")
|
||||
{
|
||||
if (env::interactive())
|
||||
|
@ -76,7 +76,14 @@ namespace hpcstat::sql
|
||||
return decltype(conn())();
|
||||
else dbfile = std::filesystem::path(*datadir) / "hpcstat.db";
|
||||
}
|
||||
return conn();
|
||||
auto result = conn();
|
||||
if (!result) std::cerr << "Failed to connect to database.\n";
|
||||
return result;
|
||||
}
|
||||
bool initdb()
|
||||
{
|
||||
if (auto conn = connect(); !conn) return false;
|
||||
else { conn->sync_schema(); return true; }
|
||||
}
|
||||
bool writedb(auto value)
|
||||
{ if (auto conn = connect(); !conn) return false; else { conn->insert(value); return true; } }
|
||||
|
Loading…
Reference in New Issue
Block a user