diff --git a/src/babashka/impl/os.clj b/src/babashka/impl/os.clj new file mode 100644 index 00000000..7570391e --- /dev/null +++ b/src/babashka/impl/os.clj @@ -0,0 +1,14 @@ +(ns babashka.impl.os + {:no-doc true} + (:require [babashka.os :as os] + [sci.core :as sci])) + +(def ons (sci/create-ns 'babashka.os nil)) + +(def os-namespace + {'set-env (sci/copy-var os/set-env ons) + 'get-env (sci/copy-var os/get-env ons)}) + + + + diff --git a/src/babashka/os.clj b/src/babashka/os.clj new file mode 100644 index 00000000..655cddf8 --- /dev/null +++ b/src/babashka/os.clj @@ -0,0 +1,18 @@ +(ns babashka.os) + +(defmacro if-graal [then else] + (if (resolve 'babashka.impl.Graal) + then + else)) + +(defn set-env + ([name value] (set-env name value true)) + ([name value overwrite?] + (if-graal + (babashka.impl.Graal/setEnv name value overwrite?) + (throw (UnsupportedOperationException. "set-env is only available in the native image."))))) + +(defn get-env [name] + (if-graal + (babashka.impl.Graal/getEnv name) + (throw (UnsupportedOperationException. "set-env is only available in the native image."))))