diff --git a/env.jk b/env.jk new file mode 100644 index 0000000..b9114f9 --- /dev/null +++ b/env.jk @@ -0,0 +1,28 @@ +link_with("libc.so.6") + +// FIXME: These functions can return NULL, how do we check for this? +// Do we promote NULL to an empty string? Do we return a Pointer instead? +ext func getenv(name: string) -> string; +ext func setenv(name: string, value: string); + +type Env(from: string); + +func get(env: Env) -> string { + getenv(env.from) +} + +func set(env: Env, new_value: string) { + setenv(env.from, new_value) +} + +// FIXME: Add assertions +test get_home() { + println(Env(from: "HOME").get()) +} + +test set_var() { + random_env_var = Env(from: "__jinko_RANDOM_ENV_VAR"); + random_env_var.set("is_set") + + // random_env_var.get().should_be("is_set") +}