aboutsummaryrefslogblamecommitdiffstats
path: root/src/actions.c
blob: 881c2995cd56a450b385efdeac5a151be78a7d99 (plain) (tree)



















































                                                                             
                        



                                        

                                
                       



                                        


                                          



                                        




                                         




                                         




                                           




                                         


                                 























































                                        
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

#include "actions.h"
#include "dblayer.h"

int init_create_config_file(UserOpt *opt) {
  struct stat st = {0};
  if (stat("/home/gramanas/.ck", &st)  == -1) {
    mkdir("/home/gramanas/.ck", 0755);
  }
  
  FILE *f;
  if ((f = fopen("/home/gramanas/.ck/ckrc", "w")) == NULL) {
    return 1;
  }
  char tmp[200];
  if (stat(opt->argv[0], &st) == -1) {
    printf("Version control directory: %s\ndoes not exist.\n", opt->argv[0]);
    return 1;
  }
  strcpy(tmp, "version_control_dir = ");
  strcat(tmp, opt->argv[0]);
  strcat(tmp, "\n");
  fputs(tmp, f);
  if (stat(opt->argv[1], &st) == -1) {
    printf("Secret directory: %s\ndoes not exist.\n", opt->argv[1]);
    return 1;
  }
  strcpy(tmp, "secret_dir = ");
  strcat(tmp, opt->argv[1]);
  strcat(tmp, "\n");
  fputs(tmp, f);
  fclose(f);
  return 0;
}

int run_INIT(UserOpt * opt, Conf *conf) {
  if (db_exists()) {
    printf("ck is already initialized.\n");
    return 0;
  }
  if (init_create_config_file(opt)) {
    return 0;
  }
  DB db = init_make_DB();
  if (db.error == SQL_NO_ERR) {
    init_make_tables(&db);
  }
  sqlite3_close(db.ptr);
  return 1;
}

int run_ADD(UserOpt * opt, Conf *conf) {
  printf("Running %s\n", "add");
  DB db = open_DB();
  if (db.ptr == NULL) {
    if (db.error == SQL_ERR_NO_TABLES) {
      printf("no tables\n");
    }
  }
  for (int i = 0; i < opt->argc; i++) {
    printf("[%d]: %s\n", i, opt->argv[i]);
  }
  return 0;
}

int run_DEL(UserOpt * opt, Conf *conf) {
  printf("Running %s\n", "del");
  return 0;
}

int run_EDIT(UserOpt * opt, Conf *conf) {
  printf("Running %s\n", "edit");
  return 0;
}

int run_LIST(UserOpt * opt, Conf *conf) {
  printf("Running %s\n", "list");
  return 0;
}

int run_SEARCH(UserOpt * opt, Conf *conf) {
  printf("Running %s\n", "search");
  return 0;
}

int run_HELP(UserOpt * opt, Conf *conf) {
  printf("Running %s\n", "help");
  return 0;
}

void print_INIT_result(int ok) {
  if (ok) {
    printf("Initialized empty ckdb.\n");
    return;
  }
}

void print_ADD_result(int ok) {
  if (ok) {
    printf("succes\n");
    return;
  }
  printf("failure\n");
}

void print_DEL_result(int ok) {
  if (ok) {
    printf("succes\n");
    return;
  }
  printf("failure\n");
}

void print_EDIT_result(int ok) {
  if (ok) {
    printf("succes\n");
    return;
  }
  printf("failure\n");
}

void print_LIST_result(int ok) {
  if (ok) {
    printf("succes\n");
    return;
  }
  printf("failure\n");
}

void print_SEARCH_result(int ok) {
  if (ok) {
    printf("succes\n");
    return;
  }
  printf("failure\n");
}

void print_HELP_result(int ok) {
  if (ok) {
    printf("succes\n");
    return;
  }
  printf("failure\n");
}