#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");
}