Counter and Progress bar
This commit is contained in:
commit
b5e1ee0326
40
nob.c
Normal file
40
nob.c
Normal file
@ -0,0 +1,40 @@
|
||||
#define NOB_IMPLEMENTATION
|
||||
#define NOB_STRIP_PREFIX
|
||||
#include "nob.h"
|
||||
|
||||
#define BUILD_FOLDER "build/"
|
||||
#define SRC_FOLDER "src/"
|
||||
#define SRC_FILE "src/main.c"
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
NOB_GO_REBUILD_URSELF(argc, argv);
|
||||
|
||||
Nob_Cmd cmd = {0};
|
||||
|
||||
if (!nob_mkdir_if_not_exists(BUILD_FOLDER)) return 1;
|
||||
if (!nob_mkdir_if_not_exists(SRC_FOLDER)) return 1;
|
||||
|
||||
if(!file_exists(SRC_FILE)) {
|
||||
String_Builder sb = {0};
|
||||
sb_append_cstr(&sb, "#include <stdio.h>\n");
|
||||
sb_append_cstr(&sb, "#define NOB_IMPLEMENTATION\n");
|
||||
sb_append_cstr(&sb, "#define NOB_STRIP_PREFIX\n");
|
||||
sb_append_cstr(&sb, "#include \"../nob.h\"\n");
|
||||
sb_append_cstr(&sb, "\nint main()\n");
|
||||
sb_append_cstr(&sb, "{\n printf(\"Hello, world\\n\");\n");
|
||||
sb_append_cstr(&sb, " return 0;\n}\n");
|
||||
/* const char *data = "#include <stdio.h>\n\nint main(){\n printf(\"Hello, world\\n\");\n return 0;\n}\n"; */
|
||||
write_entire_file(SRC_FILE, sb.items, sb.count);
|
||||
}
|
||||
|
||||
nob_cmd_append(&cmd, "cc");
|
||||
nob_cmd_append(&cmd, "-Wall", "-Wextra");
|
||||
nob_cmd_append(&cmd, "-o", BUILD_FOLDER"main", SRC_FOLDER"main.c");
|
||||
if(!nob_cmd_run(&cmd)) return 1;
|
||||
|
||||
nob_cmd_append(&cmd, BUILD_FOLDER"main");
|
||||
if(!nob_cmd_run(&cmd)) return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
32
src/main.c
Normal file
32
src/main.c
Normal file
@ -0,0 +1,32 @@
|
||||
/* some comment */
|
||||
#include <stdio.h>
|
||||
#define NOB_IMPLEMENTATION
|
||||
#define NOB_STRIP_PREFIX
|
||||
#include "../nob.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
size_t counter = 100;
|
||||
for(size_t i = 0; i < counter; i++){
|
||||
printf("\rProgress count: %zu/%zu", i, counter);
|
||||
fflush(stdout);
|
||||
}
|
||||
printf("\n");
|
||||
printf("\n");
|
||||
for(size_t i = 0; i <= counter; i++){
|
||||
size_t bar_max = 40;
|
||||
size_t bar_current = bar_max*i/counter;
|
||||
/* const char *spinner1 = "-\\|/"; */
|
||||
const char *spinner[] = {"⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"};
|
||||
printf("\rProgress bar: ");
|
||||
for (size_t j = 0; j < bar_current; ++j) printf("#");
|
||||
for (size_t j = bar_current; j < bar_max; ++j) printf(".");
|
||||
/* printf(" %c", spinner1[i%strlen(spinner)]); */
|
||||
printf(" %s", spinner[i%ARRAY_LEN(spinner)]);
|
||||
fflush(stdout);
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user