Merge branch 'main' of https://git.pupbrained.xyz/pupbrained/draconisplusplus
This commit is contained in:
commit
a5cdc09156
5 changed files with 33 additions and 16 deletions
12
flake.lock
generated
12
flake.lock
generated
|
@ -2,11 +2,11 @@
|
|||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1741678040,
|
||||
"narHash": "sha256-rmBsz7BBcDwfvDkxnKHmolKceGJrr0nyz5PQYZg0kMk=",
|
||||
"lastModified": 1744536153,
|
||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3ee8818da146871cd570b164fc4f438f78479a50",
|
||||
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -59,11 +59,11 @@
|
|||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739829690,
|
||||
"narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=",
|
||||
"lastModified": 1743748085,
|
||||
"narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "3d0579f5cc93436052d94b73925b48973a104204",
|
||||
"rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -33,16 +33,16 @@ namespace {
|
|||
possiblePaths.push_back(fs::path(".") / "config.toml");
|
||||
#else
|
||||
// Unix/Linux paths in order of preference
|
||||
if (auto result = getEnv("XDG_CONFIG_HOME"); result)
|
||||
possiblePaths.push_back(fs::path(*result) / "draconis++" / "config.toml");
|
||||
if (auto result = GetEnv("XDG_CONFIG_HOME"); result)
|
||||
possiblePaths.emplace_back(fs::path(*result) / "draconis++" / "config.toml");
|
||||
|
||||
if (auto result = getEnv("HOME"); result) {
|
||||
possiblePaths.push_back(fs::path(*result) / ".config" / "draconis++" / "config.toml");
|
||||
possiblePaths.push_back(fs::path(*result) / ".draconis++" / "config.toml");
|
||||
if (auto result = GetEnv("HOME"); result) {
|
||||
possiblePaths.emplace_back(fs::path(*result) / ".config" / "draconis++" / "config.toml");
|
||||
possiblePaths.emplace_back(fs::path(*result) / ".draconis++" / "config.toml");
|
||||
}
|
||||
|
||||
// System-wide config
|
||||
possiblePaths.push_back(fs::path("/etc/draconis++/config.toml"));
|
||||
possiblePaths.emplace_back("/etc/draconis++/config.toml");
|
||||
#endif
|
||||
|
||||
// Check if any of these configs already exist
|
||||
|
|
|
@ -60,9 +60,23 @@ struct Weather {
|
|||
|
||||
static fn fromToml(const toml::table& tbl) -> Weather {
|
||||
Weather weather;
|
||||
weather.enabled = tbl["enabled"].value<bool>().value_or(false);
|
||||
weather.show_town_name = tbl["show_town_name"].value<bool>().value_or(false);
|
||||
weather.api_key = tbl["api_key"].value<string>().value_or("");
|
||||
weather.enabled = tbl["enabled"].value_or<bool>(false);
|
||||
|
||||
if (auto apiKey = tbl["api_key"].value<string>()) {
|
||||
const string& keyVal = apiKey.value();
|
||||
|
||||
if (keyVal.empty())
|
||||
weather.enabled = false;
|
||||
|
||||
weather.api_key = keyVal;
|
||||
} else {
|
||||
weather.enabled = false;
|
||||
}
|
||||
|
||||
if (!weather.enabled)
|
||||
return weather;
|
||||
|
||||
weather.show_town_name = tbl["show_town_name"].value_or<bool>(false);
|
||||
weather.units = tbl["units"].value<string>().value_or("metric");
|
||||
|
||||
if (const toml::node_view<const toml::node> location = tbl["location"]) {
|
||||
|
@ -74,6 +88,8 @@ struct Weather {
|
|||
coords.lat = coord->get("lat")->value<double>().value();
|
||||
coords.lon = coord->get("lon")->value<double>().value();
|
||||
weather.location = coords;
|
||||
} else {
|
||||
throw std::runtime_error("Invalid location type");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <fmt/color.h>
|
||||
#include <fmt/format.h>
|
||||
#include <source_location>
|
||||
#include <utility>
|
||||
|
||||
#include "types.h"
|
||||
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <expected>
|
||||
#include <string>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <expected>
|
||||
// ReSharper disable once CppUnusedIncludeDirective
|
||||
#include <guiddef.h>
|
||||
#include <variant>
|
||||
|
|
Loading…
Add table
Reference in a new issue