You are looking at historical revision 39572 of this page. It may differ significantly from its current revision.
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
call-with-environment-variables
[procedure] (call-with-environment-variables variables thunk) → unspecifiedSets 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.