Fix data dir and its files creation
This commit is contained in:
parent
eb3a859e97
commit
68f5fd5f7c
3 changed files with 12 additions and 15 deletions
|
@ -11,7 +11,6 @@ void *memalloc(size_t size);
|
|||
void *estrdup(void *str);
|
||||
char *replace_home(char *str);
|
||||
void mkdir_p(const char *destdir);
|
||||
void create_data_dir();
|
||||
void write_log(int type, const char *fmt, ...);
|
||||
void print_bin(const unsigned char *ptr, size_t length);
|
||||
|
||||
|
|
18
lib/util.c
18
lib/util.c
|
@ -70,7 +70,6 @@ char *replace_home(char *str)
|
|||
char *newstr = memalloc(strlen(str) + strlen(home));
|
||||
/* replace ~ with home */
|
||||
snprintf(newstr, strlen(str) + strlen(home), "%s%s", home, str + 1);
|
||||
free(str);
|
||||
return newstr;
|
||||
}
|
||||
|
||||
|
@ -123,24 +122,21 @@ void mkdir_p(const char *destdir)
|
|||
return;
|
||||
}
|
||||
|
||||
void create_data_dir()
|
||||
{
|
||||
char *client_data_dir = estrdup(CLIENT_DATA_DIR);
|
||||
mkdir_p(client_data_dir);
|
||||
client_data_dir = replace_home(client_data_dir);
|
||||
free(client_data_dir);
|
||||
}
|
||||
|
||||
void write_log(int type, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
|
||||
char *client_log = memalloc(PATH_MAX);
|
||||
snprintf(client_log, PATH_MAX, "%s/%s", CLIENT_DATA_DIR, "/zen.log");
|
||||
char *data_dir = replace_home(CLIENT_DATA_DIR);
|
||||
snprintf(client_log, PATH_MAX, "%s/%s", data_dir, "zen.log");
|
||||
printf("log: %s\n", client_log);
|
||||
free(data_dir);
|
||||
if (access(client_log, W_OK) != 0) {
|
||||
/* If log file doesn't exist, most likely data dir won't exist too */
|
||||
create_data_dir();
|
||||
mkdir_p(CLIENT_DATA_DIR);
|
||||
}
|
||||
|
||||
FILE *log = fopen(client_log, "a");
|
||||
if (log != NULL) {
|
||||
time_t now = time(NULL);
|
||||
|
|
|
@ -32,10 +32,12 @@ int sqlite_init()
|
|||
char *err_msg = 0;
|
||||
|
||||
char *zen_db = memalloc(PATH_MAX);
|
||||
snprintf(zen_db, PATH_MAX, "%s/%s", CLIENT_DATA_DIR, "/zen.db");
|
||||
char *data_dir = replace_home(CLIENT_DATA_DIR);
|
||||
snprintf(zen_db, PATH_MAX, "%s/%s", data_dir, "data.db");
|
||||
free(data_dir);
|
||||
if (access(zen_db, W_OK) != 0) {
|
||||
/* If log file doesn't exist, most likely data dir won't exist too */
|
||||
create_data_dir();
|
||||
/* If data file doesn't exist, most likely data dir won't exist too */
|
||||
mkdir_p(CLIENT_DATA_DIR);
|
||||
}
|
||||
|
||||
int rc = sqlite3_open(zen_db, &db);
|
||||
|
|
Loading…
Reference in a new issue