[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-mcron] [PATCH 15/33] main: Add docstrings.
From: |
Mathieu Lirzin |
Subject: |
[Bug-mcron] [PATCH 15/33] main: Add docstrings. |
Date: |
Sun, 27 Sep 2015 23:00:26 +0200 |
* scm/mcron/main.scm (delete-run-file, mcron-error)
(process-files-in-system-directory, process-files-in-user-directory)
(process-update-request, process-user-file, regular-file?)
(stdin->string, valid-user): Turn comments into docstrings.
(command-type, options): Move comments into the definitions.
---
scm/mcron/main.scm | 93 +++++++++++++++++++-----------------------------------
1 file changed, 32 insertions(+), 61 deletions(-)
diff --git a/scm/mcron/main.scm b/scm/mcron/main.scm
index e05e39e..e99578e 100644
--- a/scm/mcron/main.scm
+++ b/scm/mcron/main.scm
@@ -52,11 +52,10 @@ of COMMAND without any non-alphabetic characters. For
example \"in.cron\" and
When COMMAND is not specified this uses the first element of (command-line)."
(match:substring (regexp-exec (make-regexp "[[:alpha:]]*$") command)))
-;; Code contributed by Sergey Poznyakoff. Print an error message (made up from
-;; the parts of rest), and if the error is fatal (present and non-zero) then
-;; exit to the system with this code.
-
(define (mcron-error exit-code . rest)
+ "Print an error message (made up from the parts of REST), and if the
+EXIT-CODE error is fatal (present and non-zero) then exit to the system with
+EXIT-CODE."
(with-output-to-port (current-error-port)
(lambda ()
(for-each display (append (list (command-name) ": ") rest))
@@ -72,10 +71,9 @@ and exit with its error code."
(lambda (key exit-code . msg)
(apply mcron-error exit-code msg))))
-;; We will be doing a lot of testing of the command name, so it makes sense to
-;; perform the string comparisons once and for all here.
-
(define command-type
+ ;; We will be doing a lot of testing of the command name, so it makes sense
+ ;; to perform the string comparisons once and for all here.
(let* ((command (command-name))
(command=? (cut string=? command <>)))
(cond ((command=? "mcron") 'mcron)
@@ -83,11 +81,10 @@ and exit with its error code."
((command=? "crontab") 'crontab)
(else (mcron-error 12 "The command name is invalid.")))))
-;; There are a different set of options for the crontab personality compared to
-;; all the others, with the --help and --version options common to all the
-;; personalities.
-
(define options
+ ;; There are a different set of options for the crontab personality compared
+ ;; to all the others, with the --help and --version options common to all
+ ;; the personalities.
(catch
'misc-error
(lambda ()
@@ -183,12 +180,11 @@ reading all the information in the users' crontabs and in
/etc/crontab.\n
(when (option-ref options 'help #f)
(show-help))
-;; This is called from the C front-end whenever a terminal signal is
-;; received. We remove the /var/run/cron.pid file so that crontab and other
-;; invocations of cron don't get the wrong idea that a daemon is currently
-;; running.
-
(define (delete-run-file)
+ "Remove the /var/run/cron.pid file so that crontab and other invocations of
+cron don't get the wrong idea that a daemon is currently running. This
+procedure is called from the C front-end whenever a terminal signal is
+received."
(catch #t (lambda () (delete-file config-pid-file)
(delete-file config-socket-file))
noop)
@@ -224,10 +220,8 @@ reading all the information in the users' crontabs and in
/etc/crontab.\n
(setenv "MAILTO" #f)
(c-set-cron-signals))
-
-;; Procedure to slurp the standard input into a string.
-
(define (stdin->string)
+ "Return standard input as a string."
(with-output-to-string (lambda () (do ((in (read-char) (read-char)))
((eof-object? in))
(display in)))))
@@ -243,12 +237,8 @@ reading all the information in the users' crontabs and in
/etc/crontab.\n
(load "crontab.scm")
(quit))
-
-
-;; Code contributed by Sergey Poznyakoff. Determine if the given file is a
-;; regular file or not.
-
(define (regular-file? file)
+ "Return true if FILE is a regular file."
(catch 'system-error
(lambda ()
(eq? (stat:type (stat file)) 'regular))
@@ -256,16 +246,14 @@ reading all the information in the users' crontabs and in
/etc/crontab.\n
(mcron-error 0 (apply format (append (list #f fmt) args)))
#f)))
-
-
-;; Procedure which processes any configuration file according to the
-;; extension. If a file is not recognized, it is silently ignored (this deals
-;; properly with most editors' backup files, for instance).
-
(define guile-file-regexp (make-regexp "\\.gui(le)?$"))
(define vixie-file-regexp (make-regexp "\\.vix(ie)?$"))
(define (process-user-file file-path . assume-guile)
+ "Process FILE-PATH according its extension. When ASSUME-GUILE is non nil,
+usage of guile syntax is forced for FILE-PATH. If a file is not recognized,
+it is silently ignored (this deals properly with most editors' backup files,
+for instance)."
(cond ((string=? file-path "-")
(if (string=? (option-ref options 'stdin "guile") "vixie")
(read-vixie-port (current-input-port))
@@ -276,13 +264,9 @@ reading all the information in the users' crontabs and in
/etc/crontab.\n
((regexp-exec vixie-file-regexp file-path)
(read-vixie-file file-path))))
-
-
-;; Procedure to run through all the files in a user's ~/.cron and/or
-;; $XDG_CONFIG_HOME/cron or ~/.config/cron directories (only happens under the
-;; mcron personality).
-
(define (process-files-in-user-directory)
+ "Process files in $XDG_CONFIG_HOME/cron and/or ~/.cron directories (if
+$XDG_CONFIG_HOME is not defined uses ~/.config/cron instead)."
(let ((errors 0)
(home-directory (passwd:dir (getpw (getuid)))))
(map (lambda (config-directory)
@@ -305,13 +289,10 @@ reading all the information in the users' crontabs and in
/etc/crontab.\n
"Cannot read files in your ~/.config/cron (or ~/.cron) "
"directory."))))
-
-
-;; Procedure to check that a user name is in the passwd database (it may happen
-;; that a user is removed after creating a crontab). If the user name is valid,
-;; the full passwd entry for that user is returned to the caller.
-
(define (valid-user user-name)
+ "Check that USER-NAME is in the passwd database (it may happen that a user
+is removed after creating a crontab). If the USER-NAME is valid, Return the
+full passwd entry for that user."
(setpwent)
(do ((entry (getpw) (getpw)))
((or (not entry)
@@ -319,17 +300,11 @@ reading all the information in the users' crontabs and in
/etc/crontab.\n
(endpwent)
entry)))
-
-
-;; Procedure to process all the files in the crontab directory, making sure
that
-;; each file is for a legitimate user and setting the configuration-user to
that
-;; user. In this way, when the job procedure is run on behalf of the
-;; configuration files, the jobs are registered with the system with the
-;; appropriate user. Note that only the root user should be able to perform
this
-;; operation, but we leave it to the permissions on the /var/cron/tabs
directory
-;; to enforce this.
-
(define (process-files-in-system-directory)
+ "Process all the files in the crontab directory. When the job procedure is
+run on behalf of the configuration files, the jobs are registered on the
+system with the appropriate user. Only root should be able to perform this
+operation. The permissions on the /var/cron/tabs directory enforce this."
(catch #t
(lambda ()
(let ((directory (opendir config-spool-dir)))
@@ -429,16 +404,12 @@ option.\n")
"Cannot bind to UNIX socket "
config-socket-file))))
-
-
-
-;; This function is called whenever a message comes in on the above socket. We
-;; read a user name from the socket, dealing with the "/etc/crontab" special
-;; case, remove all the user's jobs from the job list, and then re-read the
-;; user's updated file. In the special case we drop all the system jobs and
-;; re-read the /etc/crontab file.
-
(define (process-update-request)
+ "Read a user name from the socket, dealing with the /etc/crontab special
+case, remove all the user's jobs from the job list, and then re-read the
+user's updated file. In the special case drop all the system jobs and re-read
+the /etc/crontab file. This function should be called whenever a message
+comes in on the above socket."
(let* ((socket (car (accept (car fd-list))))
(user-name (read-line socket)))
(close socket)
- [Bug-mcron] [PATCH 08/33] build: Improve maintainer-clean rule., (continued)
- [Bug-mcron] [PATCH 08/33] build: Improve maintainer-clean rule., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 07/33] Augment TODO., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 09/33] build: Generate 'ChangeLog' upon 'make dist'., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 10/33] build: Fix prerequisite of the man page target., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 11/33] main: Import the modules used in one time., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 12/33] main: Use 'when' and 'unless' special forms., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 14/33] main: Make 'catch-mcron-error' macro hygienic., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 16/33] main: Add cron-file-descriptors., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 27/33] main: Improve 'process-user-file' definition., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 15/33] main: Add docstrings.,
Mathieu Lirzin <=
- [Bug-mcron] [PATCH 26/33] mcron: Make functions 'static'., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 29/33] environment: Redefine 'modify-environment'., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 17/33] main: Add main., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 21/33] main: Remove obsolete debug option., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 22/33] redirect: Use module (ice-9 regex)., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 23/33] mcron: Add forward declarations., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 28/33] main: Remove unused 'regular-file?' procedure., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 24/33] mcron: Use symbolic constants., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 25/33] mcron: Rework comments., Mathieu Lirzin, 2015/09/27
- [Bug-mcron] [PATCH 20/33] build: Enable silent rules by default., Mathieu Lirzin, 2015/09/27