Outdated egg!
This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.
If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.
call-with-environment-variables
Set up and take down environment vars
TOC »
call-with-environment-variables
- call-with-environment-variables variables thunkprocedure
Sets up environment variable via dynamic-wind which are taken down after thunk.
- variables
- An alist of the form '(("var" . "value") ...)
- thunk
- The thunk to execute with a modified environment
(define (call-with-environment-variables variables thunk) (let ((pre-existing-variables (map (lambda (var-value) (let ((var (car var-value))) (cons var (get-environment-variable var)))) variables))) (dynamic-wind (lambda () (void)) (lambda () (use posix) (for-each (lambda (var-value) (setenv (car var-value) (cdr var-value))) variables) (thunk)) (lambda () (for-each (lambda (var-value) (let ((var (car var-value)) (value (cdr var-value))) (if value (setenv var value) (unsetenv var)))) pre-existing-variables)))))
About this egg
Author
Repository
https://github.com/klutometis/call-with-environment-variables
License
BSD
Dependencies
Versions
- 0.1
- Initial release
- 0.1.1
- Add the actual code.
- 0.1.2
- Fix versions.
- 0.1.3
- Update docs.
- 0.1.4
- With a note about cock-utils
- 0.1.5
- Docs
- 0.1.6
- Use hahn.
- 0.1.7
- Specify hahn-version.
Colophon
Documented by hahn.