Compare commits
No commits in common. "91265cc0990ac44347b78e0960a8faace24e6bcb" and "5075fb8ad89337f29d31fceea26101da9c8c576e" have entirely different histories.
91265cc099
...
5075fb8ad8
17
makefile
17
makefile
|
@ -1,17 +1,8 @@
|
||||||
CC=gcc
|
build:
|
||||||
SRC=pomo.c
|
gcc pomo.c -o pomo
|
||||||
OUT=pomo
|
|
||||||
STYLE_BLUEPRINT=webkit
|
|
||||||
FORMATTER=clang-format -i -style=$(STYLE_BLUEPRINT)
|
|
||||||
|
|
||||||
build: $(SRC)
|
|
||||||
$(CC) $(SRC) -o $(OUT)
|
|
||||||
|
|
||||||
install:
|
install:
|
||||||
cp ./$(OUT) /bin/pomo
|
cp ./pomo /bin/pomo
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
clang-tidy $(SRC) --
|
clang-tidy pomo.c --
|
||||||
|
|
||||||
format:
|
|
||||||
$(FORMATTER) $(SRC)
|
|
||||||
|
|
87
pomo.c
87
pomo.c
|
@ -1,43 +1,41 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
#define MAX_MSG_LEN 100
|
#define MAX_MSG_LEN 100
|
||||||
#define LEN(a) (sizeof(a) / sizeof(a[0]))
|
#define LEN(a) (sizeof(a) / sizeof(a[0]))
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned int t;
|
unsigned int t;
|
||||||
char* msg;
|
char *msg;
|
||||||
} Timers;
|
} Timers;
|
||||||
|
|
||||||
static Timers timers[] = {
|
static Timers timers[] = {
|
||||||
/* timer(s) comment */
|
/* timer(s) comment */
|
||||||
{ 1500, "Time to start working!" },
|
{ 1500, "Time to start working!"},
|
||||||
{ 300, "Time to start resting!" },
|
{ 300, "Time to start resting!"},
|
||||||
{ 1500, "Time to start working!" },
|
{ 1500, "Time to start working!"},
|
||||||
{ 300, "Time to start resting!" },
|
{ 300, "Time to start resting!"},
|
||||||
{ 1500, "Time to start working!" },
|
{ 1500, "Time to start working!"},
|
||||||
{ 300, "Time to start resting!" },
|
{ 300, "Time to start resting!"},
|
||||||
{ 1500, "Time to start working!" },
|
{ 1500, "Time to start working!"},
|
||||||
{ 900, "Time to take a longer rest!" },
|
{ 900, "Time to take a longer rest!" },
|
||||||
};
|
};
|
||||||
|
|
||||||
void spawn(char* argv[])
|
void spawn(char *argv[]){
|
||||||
{
|
if (fork() == 0) {
|
||||||
if (fork() == 0) {
|
// we need to fork the process so that
|
||||||
// we need to fork the process so that
|
// when we exit the sent screen
|
||||||
// when we exit the sent screen
|
// this program continues.
|
||||||
// this program continues.
|
setsid();
|
||||||
setsid();
|
execvp(argv[0], argv);
|
||||||
execvp(argv[0], argv);
|
perror(" failed");
|
||||||
perror(" failed");
|
exit(0);
|
||||||
exit(0);
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_time_now()
|
void print_time_now(){
|
||||||
{
|
|
||||||
time_t timer;
|
time_t timer;
|
||||||
char buffer[26];
|
char buffer[26];
|
||||||
struct tm* tm_info;
|
struct tm* tm_info;
|
||||||
|
@ -47,28 +45,27 @@ void print_time_now()
|
||||||
|
|
||||||
strftime(buffer, 26, "%Y-%m-%d %H:%M:%S", tm_info);
|
strftime(buffer, 26, "%Y-%m-%d %H:%M:%S", tm_info);
|
||||||
fprintf(stderr, "%s", buffer);
|
fprintf(stderr, "%s", buffer);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void display_message(char* msg)
|
void display_message(char *msg){
|
||||||
{
|
char sh_command[MAX_MSG_LEN];
|
||||||
char sh_command[MAX_MSG_LEN];
|
snprintf(sh_command, MAX_MSG_LEN, "echo '%s' | sent", msg); // NOLINT: We are being carefull here by considering MAX_MSG_LEN explicitly.
|
||||||
snprintf(sh_command, MAX_MSG_LEN, "echo '%s' | sent", msg); // NOLINT: We are being carefull here by considering MAX_MSG_LEN explicitly.
|
|
||||||
printf("%s", sh_command);
|
printf("%s", sh_command);
|
||||||
char* spawn_args[] = {
|
char *spawn_args[] = {
|
||||||
"/bin/sh",
|
"/bin/sh",
|
||||||
"-c",
|
"-c",
|
||||||
sh_command,
|
sh_command,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
spawn(spawn_args);
|
spawn(spawn_args);
|
||||||
print_time_now();
|
print_time_now();
|
||||||
fprintf(stderr, " | %s\n", msg);
|
fprintf(stderr, " | %s\n", msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char *argv[]){
|
||||||
{
|
for(int i=0; ; i = (i+1) % LEN(timers)){
|
||||||
for (int i = 0;; i = (i + 1) % LEN(timers)) {
|
display_message(timers[i].msg);
|
||||||
display_message(timers[i].msg);
|
sleep(timers[i].t);
|
||||||
sleep(timers[i].t);
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user