diff options
author | davidovski <david@davidovski.xyz> | 2022-02-11 01:35:49 +0000 |
---|---|---|
committer | davidovski <david@davidovski.xyz> | 2022-02-11 01:35:49 +0000 |
commit | 33e775af4521a4861f3e50c6e11faf754a708824 (patch) | |
tree | 8be7057c7f4dec94ccd7e2977bc258b6bf07a477 | |
parent | ec6322190ff902c6e4c85df4fc224b740db2f17b (diff) |
started hbar
-rw-r--r-- | src/hbar/hbar.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/hbar/hbar.c b/src/hbar/hbar.c new file mode 100644 index 0000000..5c90349 --- /dev/null +++ b/src/hbar/hbar.c @@ -0,0 +1,50 @@ +/* + * hbar + * + * create a horizontal progres bar across the screen + */ + +#include <sys/ioctl.h> +#include <stdio.h> +#include <unistd.h> +#include <getopt.h> + +int main (int argc, char **argv) { + struct winsize w; + ioctl(STDOUT_FILENO, TIOCGWINSZ, &w); + int width = w.ws_col; + + char *text; + int total; + int completed; + + int opt; + int option_index = 0; + + const char *optstring = "T:ucr:"; + static const struct option opts[] = { + {"text", required_argument, 0, 'T'}, + {"unit", optional_argument, 0, 'u'}, + {"color", optional_argument, 0, 'c'}, + {"reset", optional_argument, 0, 'r'} + }; + + while ((opt = getopt_long(argc, argv, optstring, opts, &option_index)) != -1) { + switch (opt) { + case 'T': + text = optarg; + } + } + + if (argc < optind + 2) { + fprintf(stderr, "Not enough arguments provided"); + } + + completed = atoi(argv[optind]); + total = atoi(argv[optind+1]); + + char output[width+6] = '\0'; + + return 0; +} + |