(feat): alias init lecture fichier
This commit is contained in:
parent
db60e7adba
commit
1d322cf4d3
@ -1,13 +1,52 @@
|
||||
#include "../../lib/bozolib/bozolib.h"
|
||||
#include "./alias.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "../env/env.h"
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include "../utils/utils.h"
|
||||
#include <string.h>
|
||||
|
||||
lst** aliases_init()
|
||||
lst** aliases_init(lst** env)
|
||||
{
|
||||
lst** aliases;
|
||||
|
||||
aliases = malloc(sizeof(lst*));
|
||||
*aliases = NULL;
|
||||
ssize_t file_name_size;
|
||||
char* home;
|
||||
int fd;
|
||||
char* file_path;
|
||||
ssize_t size_file_path;
|
||||
file_name_size = strlen("/.zzsh_aliases");
|
||||
home = get_env_variable(env, "HOME");
|
||||
size_file_path = strlen(home)+file_name_size;
|
||||
file_path = malloc((size_file_path+1)*sizeof(char));
|
||||
strcpy(file_path, home);
|
||||
strcat(file_path, "/.zzsh_aliases");
|
||||
fd = open(file_path, O_CREAT, 0644);
|
||||
if (fd == -1)
|
||||
dprintf(2, "Erreur lors la création du fichier .zzsh_aliases\n");
|
||||
close(fd);
|
||||
fd = open(file_path, O_RDONLY);
|
||||
if (fd == -1)
|
||||
dprintf(2, "Erreur lors de la lecture du fichier .zzsh_aliases\n");
|
||||
int buff_size;
|
||||
buff_size = lseek(fd, 0, SEEK_END);
|
||||
close(fd);
|
||||
fd = open(file_path, O_RDONLY);
|
||||
char buffer[buff_size];
|
||||
read(fd, buffer, buff_size);
|
||||
char** assignation;
|
||||
char** line = split_quoted_charset(buffer, "\n");
|
||||
aliases = malloc(sizeof(lst*));
|
||||
*aliases = NULL;
|
||||
for(int i = 0; line[i]!=NULL; i++)
|
||||
{
|
||||
if (strchr(line[i], '=') != NULL)
|
||||
{
|
||||
assignation = split_quoted_charset(line[i], "=");
|
||||
add_alias(aliases, assignation[0], assignation[1]);
|
||||
}
|
||||
}
|
||||
return aliases;
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@ int main(int ac, char **av, char **env_str)
|
||||
data.env = env_init((const char **) env_str);
|
||||
if (data.env == NULL)
|
||||
return (1);
|
||||
data.aliases = aliases_init();
|
||||
data.aliases = aliases_init(data.env);
|
||||
if (data.aliases == NULL)
|
||||
{
|
||||
lst_clear(data.env, &env_del);
|
||||
|
Loading…
Reference in New Issue
Block a user