Flesh out time module

This commit is contained in:
2023-05-15 17:31:23 +01:00
parent 8be7ec1e28
commit cee2e368dc
5 changed files with 41 additions and 23 deletions

View File

@@ -0,0 +1,33 @@
/*
* SPDX-License-Identifier: AGPL-3.0-only
* Copyright (c) Camden Dixie O'Brien
*/
#include "time_manager.h"
#include "config.h"
#include <time.h>
static void handle_timezone_update(const char *timezone)
{
setenv("TZ", timezone, 1);
tzset();
}
void time_manager_init(void)
{
char timezone[CONFIG_MAX_VALUE_SIZE];
(void)config_get_timezone(timezone, CONFIG_MAX_VALUE_SIZE);
handle_timezone_update(timezone);
config_add_timezone_callback(&handle_timezone_update);
}
Time get_time(void)
{
const time_t now = time(NULL);
struct tm timeinfo;
(void)localtime_r(&now, &timeinfo);
return (Time) { .hour = timeinfo.tm_hour, .minute = timeinfo.tm_min };
}