diff options
| author | 2025-03-21 21:01:37 -0500 | |
|---|---|---|
| committer | 2025-03-21 21:01:37 -0500 | |
| commit | ac3f18c657240d94911fe526a0cad8df644efa14 (patch) | |
| tree | dfdc36c54494bb402ab0e4e30caeb5b25742b3c1 | |
| parent | Add some checks to environment variables. (diff) | |
Don't read environment variables twice.
| -rwxr-xr-x | bin/janet-pm | 2 | ||||
| -rw-r--r-- | spork/declare-cc.janet | 13 | ||||
| -rw-r--r-- | spork/pm.janet | 31 |
3 files changed, 23 insertions, 23 deletions
diff --git a/bin/janet-pm b/bin/janet-pm index c48acdc..9c9fba3 100755 --- a/bin/janet-pm +++ b/bin/janet-pm @@ -279,7 +279,7 @@ (when-let [sp (get ap :syspath)] (put root-env *syspath* sp)) # Do configuration - (pm/read-env-variables) + (pm/read-env-variables root-env) (def [sub-command & command-args] (ap :default)) (def cmd (get subcommands sub-command)) diff --git a/spork/declare-cc.janet b/spork/declare-cc.janet index f985a61..46468dc 100644 --- a/spork/declare-cc.janet +++ b/spork/declare-cc.janet @@ -9,19 +9,17 @@ ### ### TODO -# - MSVC Testing on windows # - MINGW Testing # - pkg-config testing and other project.janet feature testing -# - more testing of `deps` command # - expanded testing in test suite -# - quickbin (import ./build-rules) (import ./cc) (import ./path) (import ./sh) -(import ./pm) +(defdyn *binpath* "Path to install scripts and executables to") +(defdyn *manpath* "Path to install man pages to") (defdyn *prefix* "Path prefix used to detect where to find libjanet, janet.h, etc.") (defdyn *install-manifest* "Bound to the bundle manifest during a bundle/install.") (defdyn *toolchain* "Force a given toolchain. If unset, will auto-detect.") @@ -30,8 +28,8 @@ (defn- build-root [] (dyn *build-root* "_build")) (defn- build-dir [] (path/join (build-root) (dyn cc/*build-type* :release))) (defn- get-rules [] (dyn cc/*rules* (curenv))) -(defn- bindir [] (or (os/getenv "JANET_BINPATH") (path/join (dyn *syspath*) "bin"))) -(defn- mandir [] (or (os/getenv "JANET_MANPATH") (path/join (dyn *syspath*) "man"))) +(defn- bindir [] (or (dyn *binpath*) (path/join (dyn *syspath*) "bin"))) +(defn- mandir [] (or (dyn *manpath*) (path/join (dyn *syspath*) "man"))) (defn- mkbin [] (os/mkdir (bindir))) (defn- mkman [] (os/mkdir (mandir))) (defn- bindir-rel [] (path/relpath (dyn *syspath*) (bindir))) @@ -41,8 +39,6 @@ "Auto-detect what prefix to use for finding libjanet.so, headers, etc." [] (if-let [p (dyn *prefix*)] (break p)) - (def prefix (os/getenv "JANET_PREFIX")) - (when prefix (break prefix)) (var result nil) (each test [(path/join (dyn *syspath*) "..") "/usr/" "/usr/local"] (def headercheck (path/join test "include" "janet.h")) @@ -864,7 +860,6 @@ int main(int argc, const char **argv) { "Create an environment table that can evaluate project.janet files" [] (def e (curenv)) - (pm/read-env-variables) # TODO - one for one naming with jpm (merge-module e sh) (merge-module e cjanet) diff --git a/spork/pm.janet b/spork/pm.janet index 24569b6..30278bf 100644 --- a/spork/pm.janet +++ b/spork/pm.janet @@ -368,9 +368,10 @@ ### (defn- set1 - [d e &opt xform] + [env d e &opt xform] (default xform identity) - (when-let [x (os/getenv e)] (setdyn d (xform x)))) + (when-let [x (os/getenv e)] + (put env d (xform x)))) (defn- tobool [x] @@ -398,17 +399,21 @@ (defn read-env-variables "Translate environment variables into dynamic bindings." - [] - (set1 *gitpath* "JANET_GIT") - (set1 *curlpath* "JANET_CURL") - (set1 *tarpath* "JANET_TAR") - (set1 :build-type "JANET_BUILD_TYPE" build-type-xform) - (set1 :toolchain "JANET_TOOLCHAIN" toochain-xform) - (set1 :build-dir "JANET_BUILD_DIR") - (set1 :offline "JANET_OFFLINE" tobool) - (set1 *pkglist* "JANET_PKGLIST") - (set1 :workers "WORKERS" toposint) - (set1 :verbose "VERBOSE" tobool)) + [&opt env] + (default env (curenv)) + (set1 env :prefix "JANET_PREFIX") + (set1 env :binpath "JANET_BINPATH") + (set1 env :manpath "JANET_MANPATH") + (set1 env *gitpath* "JANET_GIT") + (set1 env *curlpath* "JANET_CURL") + (set1 env *tarpath* "JANET_TAR") + (set1 env :build-type "JANET_BUILD_TYPE" build-type-xform) + (set1 env :toolchain "JANET_TOOLCHAIN" toochain-xform) + (set1 env :build-dir "JANET_BUILD_DIR") + (set1 env :offline "JANET_OFFLINE" tobool) + (set1 env *pkglist* "JANET_PKGLIST") + (set1 env :workers "WORKERS" toposint) + (set1 env :verbose "VERBOSE" tobool)) ### ### Project scaffolding |
