aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c138
1 files changed, 86 insertions, 52 deletions
diff --git a/main.c b/main.c
index c551194..e32c378 100644
--- a/main.c
+++ b/main.c
@@ -120,6 +120,8 @@ void store_database(const task_t* database, uint32_t number_of_entries, const ch
fclose(file);
}
+// Loads data from binary file into database.
+// Returns number of loaded entries.
uint32_t load_database(task_t** database, const char* path_name) {
assert(database != NULL);
@@ -269,8 +271,20 @@ void prt(char* str, uint8_t size) { // TODO Debug function... to be removed.
fprintf(stderr, "\n");
}
-void prototype() {
+enum TEST {
+ T_NONE = 0x00,
+ T_UTC = 0x01,
+ T_DAY = 0x02,
+ T_SBIN = 0x04,
+ T_LBIN = 0x08,
+ T_ECSV = 0x10,
+ T_ICSV = 0x20,
+ T_ALL = 0xFF,
+};
+
+void prototype(int level) {
+ /*
uint8_t size = 20;
char* test_string;
// C3 A7 - C3 A9 - C2 BA - 2C - F0 92 90 AB
@@ -307,29 +321,29 @@ void prototype() {
// truncate_string(test_string, 8);
// fprintf(stderr, "%s", (char*)test_string);
return;
-
+ */
const char* done = "# -- done -- -- -- /\n";
///////////////////////////////////////////////////////////////////////////
// Get current UTC time.
-
- fprintf(stderr, "# current UTC time --------------------------- \\\n");
- time_t x = time(NULL);
- printf("%s", ctime(&x));
- fprintf(stderr, done);
-
+ if (level & T_UTC) {
+ fprintf(stderr, "# current UTC time --------------------------- \\\n");
+ time_t x = time(NULL);
+ printf("%s", ctime(&x));
+ fprintf(stderr, done);
+ }
///////////////////////////////////////////////////////////////////////////
// Get current day of the week.
-
- fprintf(stderr, "# current day of the week --------------------- \\\n");
- time_t now_ut = time(NULL);
- uint8_t week_day = localtime(&now_ut)->tm_wday;
- fprintf(stderr, "%d\n", week_day);
- fprintf(stderr, done);
-
+ if (level & T_DAY) {
+ fprintf(stderr, "# current day of the week --------------------- \\\n");
+ time_t now_ut = time(NULL);
+ uint8_t week_day = localtime(&now_ut)->tm_wday;
+ fprintf(stderr, "%d\n", week_day);
+ fprintf(stderr, done);
+ }
///////////////////////////////////////////////////////////////////////////
// Prepare some data for testing.
@@ -356,49 +370,49 @@ void prototype() {
///////////////////////////////////////////////////////////////////////////
// Store database from memory to binary file.
-
- fprintf(stderr, "# store database ------------------------------ \\\n");
- store_database(tasks, tasks_count, DB_BIN_PATH_NAME);
- fprintf(stderr, done);
-
+ if (level & T_SBIN) {
+ fprintf(stderr, "# store database ------------------------------ \\\n");
+ store_database(tasks, tasks_count, DB_BIN_PATH_NAME);
+ fprintf(stderr, done);
+ }
///////////////////////////////////////////////////////////////////////////
// Load database from binary file to memory.
-
- fprintf(stderr, "# load database ------------------------------- \\\n");
- task_t* task_load = NULL;
- uint32_t number_of_entries_load = load_database(&task_load, DB_BIN_PATH_NAME);
-
- fprintf(stderr, "loaded %" PRIu32 " entries.\n", number_of_entries_load);
- for (uint32_t idx = 0; idx < number_of_entries_load; idx++) {
- print_task(&task_load[idx]);
+ if (level & T_LBIN) {
+ fprintf(stderr, "# load database ------------------------------- \\\n");
+ task_t* task_load = NULL;
+ uint32_t number_of_entries_load = load_database(&task_load, DB_BIN_PATH_NAME);
+
+ fprintf(stderr, "loaded %" PRIu32 " entries.\n", number_of_entries_load);
+ for (uint32_t idx = 0; idx < number_of_entries_load; idx++) {
+ print_task(&task_load[idx]);
+ }
+ free(task_load);
+ fprintf(stderr, done);
}
- free(task_load);
- fprintf(stderr, done);
-
///////////////////////////////////////////////////////////////////////////
// Export database to CSV file.
-
- fprintf(stderr, "# export to CSV ------------------------------- \\\n");
- export_database(tasks, tasks_count, DB_CSV_PATH_NAME);
- fprintf(stderr, done);
-
+ if (level & T_ECSV) {
+ fprintf(stderr, "# export to CSV ------------------------------- \\\n");
+ export_database(tasks, tasks_count, DB_CSV_PATH_NAME);
+ fprintf(stderr, done);
+ }
///////////////////////////////////////////////////////////////////////////
// Import database from CSV file.
-
- fprintf(stderr, "# import from CSV ----------------------------- \\\n");
- task_t* task_import = NULL;
- uint32_t number_of_entries_import = import_database(&task_import, DB_CSV_PATH_NAME);
-
- fprintf(stderr, "imported %" PRIu32 " entries.\n", number_of_entries_import);
- for (uint32_t idx = 0; idx < number_of_entries_import; idx++) {
- print_task(&task_import[idx]);
- }
- free(task_import);
- fprintf(stderr, done);
-
+ if (level & T_ICSV) {
+ fprintf(stderr, "# import from CSV ----------------------------- \\\n");
+ task_t* task_import = NULL;
+ uint32_t number_of_entries_import = import_database(&task_import, DB_CSV_PATH_NAME);
+
+ fprintf(stderr, "imported %" PRIu32 " entries.\n", number_of_entries_import);
+ for (uint32_t idx = 0; idx < number_of_entries_import; idx++) {
+ print_task(&task_import[idx]);
+ }
+ free(task_import);
+ fprintf(stderr, done);
+ }
///////////////////////////////////////////////////////////////////////////
// Release memory and exit.
@@ -594,11 +608,32 @@ int main(int argc, char *argv[]) {
if (argc > 1) {
// const char* command_version = { "--version", "-v" };
+ char* action;
+ bool do_action = false;
for (int idx = 1; idx < argc; idx++) {
- if (strncmp(argv[idx], "-v", 2) == 0 || strncmp(argv[idx], "--version", 9) == 0) {
+
+ action = "--version";
+ do_action = strncmp(argv[idx], action, strlen(action)) == 0;
+ action = "-v";
+ do_action |= strncmp(argv[idx], action, strlen(action)) == 0;
+ if (do_action) {
fprintf(stdout, "Task Time Tracker v1.0\n");
return EXIT_SUCCESS;
}
+
+ action = "--fake_bin";
+ do_action = strncmp(argv[idx], action, strlen(action)) == 0;
+ if (do_action) {
+ prototype(T_SBIN);
+ return EXIT_SUCCESS;
+ }
+
+ action = "--test";
+ do_action = strncmp(argv[idx], action, strlen(action)) == 0;
+ if (do_action) {
+ prototype(T_ALL);
+ return EXIT_SUCCESS;
+ }
}
@@ -606,10 +641,9 @@ int main(int argc, char *argv[]) {
return EXIT_FAILURE;
}
+ tasks_count = load_database(&tasks, DB_BIN_PATH_NAME);
+ tasks_capacity = tasks_count;
-
- prototype(); // TODO
- return EXIT_FAILURE;
initialize_layouts();
WINDOW *my_win;