status-time/time.c
author Stiletto <blasux@blasux.ru>
Sat, 17 Aug 2019 15:25:10 +0400
changeset 17 5b6294779007
parent 10 442bed4a072e
permissions -rw-r--r--
[status-time] Support NOT changing timezone
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     1
#define _DEFAULT_SOURCE
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     2
#include <stdio.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     3
#include <stdlib.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     4
#include <unistd.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     5
#include <strings.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     6
#include <sys/time.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     7
#include <errno.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     8
#include <time.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     9
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    10
#include "config.h"
10
442bed4a072e Locale support for status-time
Stiletto <blasux@blasux.ru>
parents: 1
diff changeset
    11
#ifdef LOCALE
442bed4a072e Locale support for status-time
Stiletto <blasux@blasux.ru>
parents: 1
diff changeset
    12
#include <locale.h>
442bed4a072e Locale support for status-time
Stiletto <blasux@blasux.ru>
parents: 1
diff changeset
    13
#endif
1
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    14
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    15
int
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    16
main(void)
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    17
{
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    18
    char buf[129];
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    19
    time_t tim;
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    20
    struct tm *timtm;
10
442bed4a072e Locale support for status-time
Stiletto <blasux@blasux.ru>
parents: 1
diff changeset
    21
#ifdef LOCALE
442bed4a072e Locale support for status-time
Stiletto <blasux@blasux.ru>
parents: 1
diff changeset
    22
    setlocale(LC_TIME, LOCALE);
442bed4a072e Locale support for status-time
Stiletto <blasux@blasux.ru>
parents: 1
diff changeset
    23
#endif
1
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    24
17
5b6294779007 [status-time] Support NOT changing timezone
Stiletto <blasux@blasux.ru>
parents: 10
diff changeset
    25
#ifdef TIMEZONE
1
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    26
    setenv("TZ", TIMEZONE, 1);
17
5b6294779007 [status-time] Support NOT changing timezone
Stiletto <blasux@blasux.ru>
parents: 10
diff changeset
    27
#endif
1
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    28
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    29
    while (1) {
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    30
        bzero(buf, sizeof(buf));
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    31
	tim = time(NULL);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    32
	timtm = localtime(&tim);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    33
	if (timtm == NULL) {
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    34
		perror("localtime");
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    35
		exit(1);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    36
	}
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    37
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    38
	if (!strftime(buf, sizeof(buf)-1, TIMEFORMAT, timtm)) {
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    39
		fprintf(stderr, "strftime == 0\n");
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    40
		exit(1);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    41
	}
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    42
	printf("%s\n", buf);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    43
	fflush(stdout);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    44
	sleep(UPDATE_PERIOD);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    45
    }
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    46
}