(feat): alias qui fonctionne et sont stocké dans un fichier

This commit is contained in:
guamss 2023-07-05 00:16:56 +02:00
parent f1b1ff0ede
commit e4099c2621
3 changed files with 32 additions and 4 deletions

View File

@ -8,12 +8,10 @@
#include "../utils/utils.h"
#include <string.h>
lst** aliases_init(lst** env)
static char* get_zzsh_aliases(lst** env)
{
lst** aliases;
ssize_t file_name_size;
char* home;
int fd;
ssize_t file_name_size;
char* file_path;
ssize_t size_file_path;
file_name_size = strlen("/.zzsh_aliases");
@ -22,6 +20,14 @@ lst** aliases_init(lst** env)
file_path = malloc((size_file_path+1)*sizeof(char));
strcpy(file_path, home);
strcat(file_path, "/.zzsh_aliases");
return file_path;
}
lst** aliases_init(lst** env)
{
lst** aliases;
int fd;
char* file_path = get_zzsh_aliases(env);
fd = open(file_path, O_CREAT, 0644);
if (fd == -1)
dprintf(2, "Erreur lors la création du fichier .zzsh_aliases\n");
@ -106,3 +112,23 @@ void alias_del(void *ptr)
free(alias->value);
free(alias);
}
int alias_save(lst** aliases, lst** env)
{
int fd;
alias_t* content;
lst* current = *aliases;
char* file_path = get_zzsh_aliases(env);
fd = open(file_path, O_WRONLY);
if (fd == -1)
{
dprintf(2, "Une erreur est survenue lors de l'écriture des aliases\n");
return 1;
}
while(current != NULL)
{
content = current->content;
dprintf(fd, "%s=%s\n", content->key, content->value);
current = current->next;
}
return 0;
}

View File

@ -13,3 +13,4 @@ lst** aliases_save(lst** aliases);
void alias_del(void *ptr);
char* get_alias(lst** aliases, const char* key);
int add_alias(lst** root, const char* key, const char* value);
int alias_save(lst** aliases, lst** env);

View File

@ -51,6 +51,7 @@ int main(int ac, char **av, char **env_str)
}
line = get_user_input(&data);
}
alias_save(data.aliases, data.env);
lst_clear(data.aliases, &alias_del);
lst_clear(data.env, &env_del);
return (0);