Mathieu Lirzin
995bc9ca6e
all: Rename 'scm' directory to 'src'.
...
* scm/mcron/config.scm.in: Rename to ...
* src/mcron/config.scm.in: ... this.
* scm/mcron/crontab.scm: Rename to ...
* src/mcron/crontab.scm: ... this.
* scm/mcron/environment.scm: Rename to ...
* src/mcron/environment.scm: ... this.
* scm/mcron/job-specifier.scm: Rename to ...
* src/mcron/job-specifier.scm: ... this.
* scm/mcron/main.scm: Rename to ...
* src/mcron/main.scm: ... this.
* scm/mcron/mcron-core.scm: Rename to ...
* src/mcron/mcron-core.scm: ... this.
* scm/mcron/redirect.scm: Rename to ...
* src/mcron/redirect.scm: ... this.
* scm/mcron/vixie-specification.scm: Rename to ...
* src/mcron/vixie-specification.scm: ... this.
* scm/mcron/vixie-time.scm: Rename to ...
* src/mcron/vixie-time.scm: ... this.
* mcron.c: Rename to ...
* src/mcron.c: ... this.
* Makefile.am: Adapt to them.
* build-aux/pre-inst-env.in: Likewise.
* configure.ac (AC_CONFIG_FILES): Likewise.
(AC_CONFIG_HEADER): Set to 'src/config.h'.
* .gitignore: Update.
2016-05-07 23:38:53 +02:00
Mathieu Lirzin
bb8703b679
build: Do not auto-compile 'guild'.
...
* Makefile.am (.scm.go): Set GUILE_AUTO_COMPILE to 0.
2016-05-07 23:38:53 +02:00
Mathieu Lirzin
5097e30bab
job-specifier: Add '%find-best-next' procedure.
...
* scm/mcron/job-specifier.scm (find-best-next): Rename to ...
(%find-best-next): ... this. Rewrite it using a functional style.
All callers changed.
2016-05-07 23:38:53 +02:00
Mathieu Lirzin
5da0024b93
job-specifier: Rewrite 'range' procedure.
...
* scm/mcron/job-specifier.scm (range): Use 'unfold'.
2016-05-07 23:38:53 +02:00
Mathieu Lirzin
ce0d72ec83
build: Fix 'distcheck' target failures.
...
* Makefile.am (TEXI2DVI, DISTCLEANFILES, doc_mcron_TEXINFOS)
(nodist_doc_mcron_TEXINFOS): New variables. This fixes the build of the
dvi/pdf documentation.
2016-05-07 23:38:53 +02:00
Mathieu Lirzin
8952d2dc44
build: Support VPATH builds.
...
This allows using 'mcron' before it is installed without hardcoding the
local build environment in the executable.
* build-aux/pre-inst-env.in: New script.
* configure.ac (AC_CONFIG_FILES): Create it.
(AC_CONFIG_HEADER): Add 'config.h'.
(moduledir): New variable.
(PACKAGE_LOAD_PATH): new C preprocessor macro.
* mcron.c: Include "config.h".
(main): Don't overwrite Guile load paths.
(inner_main): Prepend Mcron modules load paths.
* Makefile.am (.scm.go, doc/mcron.1): Use 'pre-inst-env'.
(mcron_CFLAGS): Remove GUILE_LOAD_PATH macro.
(noinst_SCRIPTS): New variable.
* .gitignore: Update.
2016-05-07 23:38:53 +02:00
Mathieu Lirzin
b59f2f5ea6
build: Use a non-recursive makefile.
...
* configure.ac (AM_INIT_AUTOMAKE): Use 'subdir-objects' option.
(AC_CONFIG_FILES): Remove 'scm/mcron/makefile' and 'makefile'. Add
'Makefile'.
* makefile.am: Delete file. Move its content into ...
* scm/mcron/makefile.am: Likewise.
* Makefile.am: ... this. New file.
* .gitignore: Update.
2016-05-07 16:17:52 +02:00
Mathieu Lirzin
589d5ff8d1
core: Use SRFI-9 records for the job data structure.
...
* scm/mcron/mcron-core.scm <job>: New record type. This Replaces a
vector data structure. All consumers changed.
2016-05-07 16:17:52 +02:00
Mathieu Lirzin
fdbaa674a7
main: Remove 'valid-user' procedure.
...
* scm/mcron/main.scm (valid-user): Delete procedure.
(process-files-in-system-directory): Adjust accordingly by using a local
definition.
2016-05-07 16:17:52 +02:00
Mathieu Lirzin
4da7aec83b
main: Add 'for-each-file' procedure.
...
* scm/mcron/main.scm (for-each-file): New procedure.
(process-files-in-user-directory, process-files-in-system-directory):
Use it.
2016-05-07 16:17:52 +02:00
Mathieu Lirzin
f2c56d355f
all: Add a custom indentation rule for 'mcron-error'.
...
* .dir-locals.el: Define a custom indentation rule for 'mcron-error'.
* scm/mcron/crontab.scm: Use it.
* scm/mcron/job-specifier.scm: Likewise.
* scm/mcron/main.scm: Likewise.
* scm/mcron/vixie-specification.scm: Likewise.
2016-05-07 16:17:52 +02:00
Mathieu Lirzin
b2718d2cc9
maint: Define directory-local variables for Emacs.
...
This configures Emacs automatically.
* .dir-locals.el: New file.
2016-05-07 16:17:52 +02:00
Mathieu Lirzin
c2a1d931a6
environment: Redefine 'modify-environment'.
...
* scm/mcron/environment.scm (modify-environment): Add docstring.
Compute 'passwd:dir' and 'passwd:name' only once.
(impose-default-environment): Merge it into 'modify-environment'.
2016-05-07 16:17:52 +02:00
Mathieu Lirzin
960f6e1817
main: Remove unused 'regular-file?' procedure.
...
* scm/mcron/main.scm (regular-file?): Delete procedure.
2016-05-07 16:17:52 +02:00
Mathieu Lirzin
805c04fb90
main: Improve 'process-user-file' definition.
...
* scm/mcron/main.scm (process-user-file): Rename parameters 'file-path'
to 'file-name' and 'assume-guile' to 'guile-syntax?'. Capture
'guile-regexp' and 'vixie-regexp' bindings in the procedure scope.
(guile-file-regexp, vixie-file-regexp): Delete variables.
2016-05-07 16:17:52 +02:00
Mathieu Lirzin
831b14d980
mcron: Mark local functions as static.
...
* mcron.c (inner_main, react_to_terminal_signal, set_cron_signals):
Declare static.
2016-05-07 16:16:56 +02:00
Mathieu Lirzin
8be6babb3f
mcron: Rework comments.
...
* mcron.c: Rework comments.
2016-05-07 11:42:11 +02:00
Mathieu Lirzin
6cd941e061
mcron: Use symbolic constants.
...
* mcron.c (main, react_to_terminal_signal): Use EXIT_SUCCESS and
EXIT_FAILURE macros instead of magic numbers.
2016-05-07 11:42:11 +02:00
Mathieu Lirzin
ba6613fe96
mcron: Add forward declarations.
...
* mcron.c: Reorder function definitions sequentially.
2016-05-07 11:42:11 +02:00
Mathieu Lirzin
b390063628
redirect: Use module (ice-9 regex).
...
* scm/mcron/redirect.scm: Use module (ice-9 regex) to prevent variables
'match:prefix', 'match:substring', and 'match:prefix' to be unbound.
2016-05-07 11:42:11 +02:00
Mathieu Lirzin
c925e9ad0d
main: Remove obsolete Guile debug option.
...
* scm/mcron/main.scm (main): Remove obsolete invocation of
'debug-enable'.
2016-05-07 11:42:11 +02:00
Mathieu Lirzin
1712722a7b
build: Enable silent rules by default.
...
* configure.ac (AM_SILENT_RULES): Use macro.
* makefile.am (doc/mcron.1): Use $(AM_V_HELP2MAN).
(AM_V_HELP2MAN, AM_V_HELP2MAN_, AM_V_HELP2MAN_): New variables.
* scm/mcron/makefile.am (.scm.go): Use $(AM_V_GUILEC).
(AM_V_GUILEC, AM_V_GUILEC_, AM_V_GUILEC_): New variables.
2016-05-07 11:42:11 +02:00
Mathieu Lirzin
3221c05720
build: Compile and install '.go' files.
...
* configure.ac: Set and substitute 'mcronmoduledir'. Check for 'guild'
which requires Guile >= 2.0.7. Use 'AC_CANONICAL_HOST'.
* scm/mcron/makefile.am (.scm.go): New target.
(MODULES, GEN_MODULES, GOBJECTS, CLEANFILES, SUFFIXES)
(dist_mcronmodule_DATA, mcronmodule_DATA): New variables.
(pkgdata_DATA, EXTRA_DIST): Remove variables.
* .gitignore: Adjust accordingly.
2016-05-07 11:42:11 +02:00
Mathieu Lirzin
3c903bfc80
main: Add (mcron main) module.
...
Remove 'ed' hack to eval content of scm/mcron/main.scm in the C wrapper.
Use proper libguile functions instead.
* scm/mcron/main.scm (mcron main): New module.
(show-version, show-package-information, show-help, main): Remove
extra newline characters in strings.
* mcron.c.template: Rename to ...
* mcron.c: ... this.
(inner_main): Set current module to (mcron main).
* makefile.ed: Delete file.
* configure.ac: Remove check for 'ed'.
* makefile.am: Adjust accordingly.
* .gitignore: Likewise.
2016-05-07 11:42:00 +02:00
Mathieu Lirzin
237c234f39
main: Add 'main' procedure.
...
* scm/mcron/main.scm (main): New Thunk. Move remaining top-level
code to it.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
98d68831ba
main: Add 'cron-file-descriptors' procedure.
...
* scm/mcron/main.scm (fd-list): Delete variable.
(cron-file-descriptors): New procedure. Return a list instead of
mutating 'fd-list'.
(process-update-request): Add 'fdes-list' parameter. Adapt caller by
using 'cron-file-descriptors' as an effective parameter.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
5e8f47fe44
main: Add docstrings.
...
* 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 inside the definitions.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
2947d84101
main: Make 'catch-mcron-error' macro hygienic.
...
* scm/mcron/main.scm (catch-mcron-error): Use 'define-syntax-rule'
instead of 'defmacro'.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
c8a1238396
main: Turn 'command-name' into a thunk.
...
* scm/mcron/main.scm (command-name): Turn into a thunk.
All callers changed.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
36161428fa
main: Use 'when' and 'unless' special forms.
...
* scm/mcron/main.scm: Use 'when' and 'unless' special forms.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
f835793336
main: Import the modules all together.
...
* scm/mcron/main.scm: Gather module imports.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
7ed303705c
build: Generate 'ChangeLog' upon 'make dist'.
...
* ChangeLog: Rename to ...
* ChangeLog.old: ... this.
* ChangeLog: New file.
* Makefile.am (gen_start_date): New variable.
(gen-ChangeLog, dist-hook): New targets.
(EXTRA_DIST): Add 'ChangeLog.old'.
* build-aux/gitlog-to-changelog: New file, from Gnulib.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
ee280d4efc
build: Remove MAINTAINERCLEANFILES variable.
...
* makefile.am (MAINTAINERCLEANFILES): Delete unneeded variable. Using
'git clean -xdf' is more reliable than 'make maintainer-clean'
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
f0feb586b7
maint: Augment TODO.
...
* TODO <Maybe in the near future>: Add items.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
cdd26d5b00
main: Add 'show-help' procedure.
...
* scm/mcron/main.scm (show-help): New procedure.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
8f136b3d67
main: Add 'show-package-information' procedure.
...
* scm/mcron/main.scm (show-package-information): New procedure.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
2dd8fa9d8f
main: Add 'show-version' procedure.
...
* scm/mcron/main.scm (show-version): New procedure.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
607d5e060d
build: Add package variables.
...
* scm/mcron/config.scm.in (config-package-name)
(configure-package-version, configure-package-url): New variables.
2016-05-07 11:32:19 +02:00
Mathieu Lirzin
940146bc90
doc: Include a copy of the GNU FDL.
...
* doc/fdl.texi: New file.
* doc/mcron.texi: Include it.
* makefile.am (doc_mcron_TEXINFOS): New variable.
2016-05-07 11:32:18 +02:00
Mathieu Lirzin
754d1d0176
maint: Fix package name and bug reports email address.
...
* configure.ac (AC_INIT): Fix package name and bug reports email
address.
2016-05-07 11:32:18 +02:00
Mathieu Lirzin
c43a9173e6
maint: Use 'build-aux' directory for auxiliary build tools.
...
* configure.ac (AC_CONFIG_AUX_DIR): Set it to 'build-aux'.
* .gitignore: Adapt to it.
2016-05-07 11:32:18 +02:00
Mathieu Lirzin
8f430594f4
build: Fix build of the manual.
...
* mcron.texinfo.in: Rename to ...
* doc/mcron.texi: ... this.
* doc/config.texi.in: New file.
* configure.ac: Adapt to it.
* makefile.am: Likewise.
* .gitignore: Likewise.
* README--git: Likewise.
2016-05-07 11:32:17 +02:00
Mathieu Lirzin
b3202cecf6
build: Add missing 'makefile.am'.
...
* scm/mcron/makefile.am: New file.
* .gitignore: Ignore 'mcron' only in the top-level directory.
2016-05-04 14:56:07 +02:00
Dale Mellor
bc38f2add2
Add maintainer-mode option to configure, to pacify Debian.
2014-05-25 17:21:00 +01:00
Dale Mellor
998f7eeaef
Correction in 'make clean' rules.
2014-05-25 17:18:04 +01:00
Dale Mellor
d69a2b91ac
Distribute the minimal man page in case the builder hasn't get help2man.
2014-05-25 15:08:45 +01:00
Dale Mellor
c0ba5c6036
Juggled build infrastructure to make mcron.1 man page properly.
2014-05-25 14:57:37 +01:00
Dale Mellor
c45e7c447b
Now runs (only) against guile-2.0.
2014-04-28 13:03:28 +01:00
Dale Mellor
bd5a58ac2f
Look for user configuration files in $XDG_CONFIG_HOME (default to ~/.config/cron) as well as ~/.cron.
2012-02-04 14:33:02 +00:00
Dale Mellor
0115be5d13
Unified copyright notices in minor files, removed immutable page covers from texinfo file.
2010-06-19 21:52:22 +01:00