extFS-Seyshell/src/env.c
2026-05-04 10:57:17 +02:00

59 lines
974 B
C

#include "env.h"
env *init_envs() {
env *envs = malloc(sizeof(env) * 3);
if (envs == NULL)
return NULL;
envs[0].key = "PWD";
envs[0].value = "/";
envs[1].key = "USER";
envs[1].value = "iatic";
envs[2].key = "HOST";
envs[2].value = "tartempion";
return envs;
}
env *get_instance() {
static env *instance = NULL;
if (instance == NULL) {
instance = init_envs();
}
return instance;
}
int get_env_len(env *envs) {
int i = 0;
while (envs[i].key != NULL) {
i++;
}
return i;
}
char *get_env_value(char *key) {
env *envs = get_instance();
for (int i = 0; i < get_env_len(envs); i++) {
if (strcmp(envs[i].key, key) == 0) {
return envs[i].value;
}
}
return NULL;
}
int set_env_value(char *key, char *value) {
env *envs = get_instance();
for (int i = 0; i < get_env_len(envs); i++) {
if (strcmp(envs[i].key, key) == 0) {
envs[i].value = strdup(value);
return 1;
}
}
return 0;
}