fixed sleep

This commit is contained in:
Your Name 2024-02-13 15:07:08 +03:00
parent 1a7b13daf2
commit f4a4fbb8b0
1 changed files with 14 additions and 10 deletions

View File

@ -5,21 +5,25 @@
#include <unistd.h> #include <unistd.h>
#include "duration.h" #include "duration.h"
int main(const int argc, const char **argv) { int main(int argc, char **argv) {
if (argc == 1 || !strcmp(argv[argc - 1], "--help")) {
printf("sleep [num[m - minute / h - hour / d - days]] / [inf infinity]\n"); int opt;
while ((opt = getopt(argc, argv, "")) != -1 || argc == 1) {
printf("sleep [num[SUFFIX]] or [inf Infinity]\nSUFFIXES:\n\tm - minute\n\th - hour\n\td - days\n");
return 0; return 0;
} }
if (!strncasecmp(argv[1], "inf", 3)) argv += optind;
for (;;) argc -= optind;
if (!strncasecmp(argv[0], "inf", 3))
while (1)
sleep(INT_MAX); sleep(INT_MAX);
unsigned long long sec = 0; unsigned long long usec = 0;
for (int i = 0; i < argc; i++)
usec += mu_parse_duration(argv[i]);
for (int i = 1; i < argc; i++) usleep(usec);
sec += mu_parse_duration(argv[i]);
usleep(sec);
return 0; return 0;
} }