commit a55e0e43a86b71548e22a041b2441ed4d485db7b from: Caleb Stein date: Sat Jun 27 22:18:37 2026 UTC remove weather module commit - 91d449e4dd54dcb76dde2962e292de425072bc2e commit + a55e0e43a86b71548e22a041b2441ed4d485db7b blob - 8bf34584a10a16109475d9e906cd131a37ed59bc blob + fbd7a7db49aa24ed39154b9e5d39d526da1e848c --- include/statbar.h +++ include/statbar.h @@ -23,8 +23,6 @@ extern void close_display(void); /* FS */ -extern bool weather_loc_valid; - extern void read_config(void); extern int open_command_interface(void); extern int open_output(void); @@ -56,14 +54,6 @@ extern char fanspeed_string[16]; extern void get_fanspeed(void); -/* Weather */ -extern char weather_string[48]; - -extern void get_weather(int fd); -extern void read_weather(int fd); -extern char **get_weather_location_ptr(void); -extern void close_weather(void); - /* Mail */ extern char mail_string[7]; blob - 4952920f95c0803025a7b58870ca6d3d1e261a3f blob + a539d6cd091520c896d42d7b677c2a7435711c2f --- modules/Makefile +++ modules/Makefile @@ -1,5 +1,5 @@ LIB= statbar_modules -SRCS= clock.c battery.c volume.c cputemp.c fanspeed.c weather.c mail.c network.c +SRCS= clock.c battery.c volume.c cputemp.c fanspeed.c mail.c network.c MAN= CFLAGS += -I../include -I/usr/local/include blob - 208a88ac24abd104329c516b6de60d521864ff5f (mode 644) blob + /dev/null --- modules/weather.c +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include -#include -#include - -#include -#include - -#include "statbar.h" - -#define MAX_RETRY_ATTEMPTS 5 - -char weather_string[48] = "..."; - -static char *weather_location; - -char ** -get_weather_location_ptr(void) -{ - return &weather_location; -} - -void -get_weather(int fd) -{ - pid_t pid = fork(); - char *argv[] = { "/usr/local/bin/weatherbar", weather_location, NULL }; - - if (pid != 0) - { - if (pid < 0) perror("fork"); - - return; - } - (void)dup2(fd, STDOUT_FILENO); - if (execv("/usr/local/bin/weatherbar", argv) < 0) - { - perror("execv"); - _exit(1); - } -} - -void -read_weather(int fd) -{ - ssize_t n = read(fd, weather_string, sizeof(weather_string) - 1); - char *lnbrk; - char garbage[1024]; - int flags = fcntl(fd, F_GETFL, 0); - - if (n < 0) - { - perror("read"); - - return; - } - weather_string[n] = '\0'; - lnbrk = strchr(weather_string, '\n'); - if (lnbrk) *lnbrk = '\0'; - (void)fcntl(fd, F_SETFL, flags | O_NONBLOCK); - while (read(fd, garbage, sizeof(garbage)) > 0); - (void)fcntl(fd, F_SETFL, flags); -} - -void -close_weather(void) -{ - free(weather_location); -} - blob - 4f58a5ada29f8649fdd13eb38c8510099cb3298a blob + cde058e7605074a5c1d529255557f1e196ff03b3 --- src/fs.c +++ src/fs.c @@ -101,20 +101,6 @@ read_config(void) nline = strchr(delim, '\n'); if (nline != NULL) *nline = '\0'; - if (strncmp(line, "weather location", strlen("weather location")) == 0) - { - weather_location = get_weather_location_ptr(); - if (weather_loc_valid && *weather_location != NULL) close_weather(); - delim++; - while (*delim == ' ') delim++; - *weather_location = strdup(delim); - if (*weather_location == NULL) - perror("strdup"); - else - weather_loc_valid = true; - - continue; - } if (strncmp(line, "inbox directory", strlen("inbox directory")) == 0) { mail_ptr = get_append_mail_path_ptr(); @@ -162,8 +148,6 @@ open_fifo(int *rdfd, int *wrfd, char **path, const cha uid_t uid; struct passwd *pw; - (void)puts("Creating FIFO..."); - uid = getuid(); pw = getpwuid(uid); @@ -180,6 +164,7 @@ open_fifo(int *rdfd, int *wrfd, char **path, const cha return -1; } + (void)printf("Creating FIFO %s\n", *path); if (mkfifo(*path, 0600) != 0 && errno != EEXIST) { perror("mkfifo"); blob - 01276ea7f9874a7eb8c8dbbdbb0c5883d5e4ca0b blob + 990ebf176a7a2f3d80a0cba669c559a1de3d6f7c --- src/main.c +++ src/main.c @@ -14,24 +14,20 @@ #include "statbar.h" -#define NFDS 5 +#define NFDS 4 enum clocks_e { CLOCK_CLOCK, CPUTEMP_CLOCK, FANSPEED_CLOCK, - WEATHER_CLOCK, CLOCKS_COUNT }; static volatile sig_atomic_t should_quit = 0; -static int reload_weather = 0; static int reload_mail = 0; static int reload_battery = 0; -bool weather_loc_valid = false; - void sig_handler(int sig) { @@ -72,7 +68,6 @@ main(void) int batt_fd; int vol_fd; int network_fd; - int weather_pipe[2]; pid_t batt_pid; pid_t vol_pid; pid_t network_pid; @@ -86,13 +81,11 @@ main(void) struct timespec battery_interval = { .tv_sec = 10 }; struct timespec cputemp_interval = { .tv_sec = 2 }; struct timespec fanspeed_interval = { .tv_sec = 3 }; - struct timespec weather_interval = { .tv_sec = 1800 }; struct pollfd pfd[NFDS]; struct pollfd *cmd_pfd = &pfd[0]; struct pollfd *batt_pfd = &pfd[1]; struct pollfd *vol_pfd = &pfd[2]; struct pollfd *network_pfd = &pfd[3]; - struct pollfd *weather_pfd = &pfd[4]; char battery_string[BATTERY_STRING_SIZE]; char volume_string[VOLUME_STRING_SIZE]; char network_string[NETWORK_STRING_SIZE]; @@ -100,8 +93,8 @@ main(void) ssize_t n; (void)setvbuf(stdout, NULL, _IOLBF, 0); + (void)puts("Welcome to statbar"); output_fd = open_output(); - printf("Got fd %d\n", output_fd); if (output_fd == -1) { (void)puts("Failed to open output FIFO"); @@ -110,8 +103,6 @@ main(void) } install_signal_handlers(); - (void)puts("Welcome to statbar"); - /* Init components */ (void)puts("Reading config..."); read_config(); @@ -119,7 +110,6 @@ main(void) normalize_clock_interval(&now, &clocks[CLOCK_CLOCK]); timespecadd(&now, &cputemp_interval, &clocks[CPUTEMP_CLOCK]); timespecadd(&now, &fanspeed_interval, &clocks[FANSPEED_CLOCK]); - timespecadd(&now, &weather_interval, &clocks[WEATHER_CLOCK]); get_clock(); batt_pid = start_privileged_battery_process(&batt_fd, &battery_interval); @@ -128,12 +118,6 @@ main(void) get_cputemp(); get_fanspeed(); - if (pipe(weather_pipe) != 0) - { - perror("pipe"); - weather_loc_valid = false; - } - cmd_pfd->fd = open_command_interface(); cmd_pfd->events = POLLIN; if (batt_pid > 0) @@ -151,15 +135,9 @@ main(void) network_pfd->fd = network_fd; network_pfd->events = POLLIN; } - if (weather_loc_valid) - { - weather_pfd->fd = weather_pipe[0]; - weather_pfd->events = POLLIN; - get_weather(weather_pipe[1]); - } get_mail(); - if (pledge("stdio rpath cpath proc exec", NULL) == -1) + if (pledge("stdio rpath cpath proc", NULL) == -1) { perror("pledge"); @@ -199,10 +177,6 @@ main(void) (void)printf("Got command 0x%02x: ", cmd); switch (cmd) { - case 0x02: - (void)puts("reloading weather"); - reload_weather = 1; - break; case 0x03: (void)puts("reloading mail"); reload_mail = 1; @@ -228,8 +202,6 @@ main(void) n = read(network_pfd->fd, network_string, NETWORK_STRING_SIZE); if (n > 0) network_string[n] = '\0'; } - if (weather_pfd && (weather_pfd->revents & POLLIN)) - read_weather(weather_pfd->fd); dirty = true; } @@ -277,24 +249,14 @@ main(void) timespecadd(&clocks[FANSPEED_CLOCK], &fanspeed_interval, &clocks[FANSPEED_CLOCK]); } - /* Weather */ - if (weather_loc_valid && weather_pfd && (reload_weather == 1 || timespeccmp(&now, &clocks[WEATHER_CLOCK], >=))) - { - reload_weather = 0; - get_weather(weather_pipe[1]); - while (timespeccmp(&now, &clocks[WEATHER_CLOCK], >=)) - timespecadd(&clocks[WEATHER_CLOCK], &weather_interval, &clocks[WEATHER_CLOCK]); - } - if (dirty) { - (void)dprintf(output_fd, "%s | %s | %s | %s | %s | %s | %s%s\n", + (void)dprintf(output_fd, "%s | %s | %s | %s | %s | %s%s\n", clock_string, battery_string, volume_string, cputemp_string, fanspeed_string, - weather_string, network_string, mail_string); dirty = false; @@ -306,14 +268,7 @@ cleanup: if (batt_pid > 0) (void)kill(batt_pid, SIGTERM); if (vol_pid > 0) (void)kill(vol_pid, SIGTERM); if (network_pid > 0) (void)kill(network_pid, SIGTERM); - if (weather_loc_valid) close_weather(); close_mail(); - if (weather_pfd) - { - weather_pfd = NULL; - (void)close(weather_pipe[0]); - (void)close(weather_pipe[1]); - } close_fifos(); return 0; blob - 29fb3abfe8be343c3793cab793729d60c54f1e4d blob + 3fc672918f869da97a24e6eabb090b7717276205 --- statbarctl.sh +++ statbarctl.sh @@ -8,7 +8,6 @@ show_help() echo "\nstatbarctl is used to control aspects of a running statbar instance" echo "statbar must be running for this program to be useful" echo "\nUsage:" - echo "\tstatbarctl reload-weather: refresh the weather module" echo "\tstatbarctl reload-mail: refresh the mail module" echo "\tstatbarctl reload-battery: refresh the battery module" echo "\tstatbarctl help: show this message" @@ -25,7 +24,6 @@ if [ -z "$1" ]; then fi case "$1" in - reload-weather) CMDBYTE="\x02" ;; reload-mail) CMDBYTE="\x03" ;; reload-battery) CMDBYTE="\x04" ;; help) blob - 19609385b5d65a8c953442b9ad7b2c89c44acc95 (mode 755) blob + /dev/null --- weatherbar.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -if [ -z "$1" ]; then - echo "Must specify location!" > /dev/stderr - - exit 1; -fi - -ftp -Vo - "https://wttr.in/${1}?u&format=1" 2> /dev/null -