aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorCalvin Rose <calsrose@gmail.com>2025-03-21 21:01:37 -0500
committerCalvin Rose <calsrose@gmail.com>2025-03-21 21:01:37 -0500
commitac3f18c657240d94911fe526a0cad8df644efa14 (patch)
treedfdc36c54494bb402ab0e4e30caeb5b25742b3c1
parentAdd some checks to environment variables. (diff)
Don't read environment variables twice.
-rwxr-xr-xbin/janet-pm2
-rw-r--r--spork/declare-cc.janet13
-rw-r--r--spork/pm.janet31
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