59 lines
974 B
C
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;
|
|
} |