AboutSummaryRefsLogTreeCommitDiffStats
path: root/environment.scm
diff options
context:
space:
mode:
authorDale Mellor <dale@rdmp.org>2014-05-25 14:57:37 +0100
committerDale Mellor <dale@rdmp.org>2014-05-25 14:57:37 +0100
commitc0ba5c6036e8962c3671928c54a2d66a4c805435 (patch)
treefa9458a630cc052f6f69688a21a40cbaf72b73bf /environment.scm
parentc45e7c447bf1d95247225d1c70e0ce593cba2ddf (diff)
downloadmcron-c0ba5c6036e8962c3671928c54a2d66a4c805435.tar.gz
mcron-c0ba5c6036e8962c3671928c54a2d66a4c805435.tar.bz2
mcron-c0ba5c6036e8962c3671928c54a2d66a4c805435.zip
Juggled build infrastructure to make mcron.1 man page properly.
Diffstat (limited to 'environment.scm')
-rw-r--r--environment.scm105
1 files changed, 0 insertions, 105 deletions
diff --git a/environment.scm b/environment.scm
deleted file mode 100644
index 9f694f1..0000000
--- a/environment.scm
+++ /dev/null
@@ -1,105 +0,0 @@
-;; Copyright (C) 2003 Dale Mellor
-;;
-;; This file is part of GNU mcron.
-;;
-;; GNU mcron is free software: you can redistribute it and/or modify it under
-;; the terms of the GNU General Public License as published by the Free
-;; Software Foundation, either version 3 of the License, or (at your option)
-;; any later version.
-;;
-;; GNU mcron is distributed in the hope that it will be useful, but WITHOUT
-;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-;; more details.
-;;
-;; You should have received a copy of the GNU General Public License along
-;; with GNU mcron. If not, see <http://www.gnu.org/licenses/>.
-
-
-
-;; This file defines the variable current-environment-mods, and the procedures
-;; append-environment-mods (which is available to user configuration files),
-;; clear-environment-mods and modify-environment. The idea is that the
-;; current-environment-mods is a list of pairs of environment names and values,
-;; and represents the cumulated environment settings in a configuration
-;; file. When a job definition is seen in a configuration file, the
-;; current-environment-mods are copied into the internal job description, and
-;; when the job actually runs these environment modifications are applied to
-;; the UNIX environment in which the job runs.
-
-
-
-
-(define-module (mcron environment)
- #:export (modify-environment
- clear-environment-mods
- append-environment-mods
- get-current-environment-mods-copy))
-
-
-
-
-;; The env-alist is an association list of variable names and values. Variables
-;; later in the list will take precedence over variables before. We return a
-;; fixed-up version in which some variables are given specific default values
-;; (which the user can override), and two variables which the user is not
-;; allowed to control are added at the end of the list.
-
-(define (impose-default-environment env-alist passwd-entry)
- (append `(("HOME" . ,(passwd:dir passwd-entry))
- ("CWD" . ,(passwd:dir passwd-entry))
- ("SHELL" . ,(passwd:shell passwd-entry))
- ("TERM" . #f)
- ("TERMCAP" . #f))
- env-alist
- `(("LOGNAME" . ,(passwd:name passwd-entry))
- ("USER" . ,(passwd:name passwd-entry)))))
-
-
-
-
-;; Modify the UNIX environment for the current process according to the given
-;; association list of variables, with the default variable values imposed.
-
-(define (modify-environment env-alist passwd-entry)
- (for-each (lambda (variable)
- (setenv (car variable) (cdr variable)))
- (impose-default-environment env-alist passwd-entry)))
-
-
-
-
-;; As we parse configuration files, we build up an alist of environment
-;; variables here.
-
-(define current-environment-mods '())
-
-
-
-;; Each time a job is added to the system, we take a snapshot of the current
-;; set of environment modifiers.
-
-(define (get-current-environment-mods-copy)
- (list-copy current-environment-mods))
-
-
-
-;; When we start to parse a new configuration file, we want to start with a
-;; fresh environment (actually an umodified version of the pervading mcron
-;; environment).
-
-(define (clear-environment-mods)
- (set! current-environment-mods '()))
-
-
-
-;; Procedure to add another environment setting to the alist above. This is
-;; used both implicitly by the Vixie parser, and can be used directly by users
-;; in scheme configuration files. The return value is purely for the
-;; convenience of the parse-vixie-environment in the vixie-specification module
-;; (yuk).
-
-(define (append-environment-mods name value)
- (set! current-environment-mods (append current-environment-mods
- (list (cons name value))))
- #t)