Apply idiomatic way of configuring org-babel for the cfengine engine. Remove the documentation about how to configure it since Spacemacs does it automatically.
2.6 KiB
CFEngine layer
Description
This layer makes working with CFEngine policy easier:
- Syntax highlighting
- On the fly syntax checks (via
syntax-checking
layer) - Auto completion (via
auto-completion
layer) - Execution of
cfengine3
SRC
blocks inorg-mode
(via ob-cfengine3 package)
Install
Add cfengine
to the dotspacemacs-configuration-layers
in your ~/.spacemacs
to use this layer.
Configuration
Set file permission on save
Here is a function to set permissions to 600 on save, this can help avoid errors like:
File ./example.cf (owner 1000) is writable by others (security exception)
(defun cfengine-permissions-policy-owner-only ()
"If file starts with a shebang, make `buffer-file-name' executable"
(save-excursion
(set-file-modes buffer-file-name #o600)
(message (concat "Made " buffer-file-name " accessibly only by the owner (600)."))))
(add-hook 'after-save-hook 'cfengine-permissions-policy-owner-only nil 'make-it-local)
Indendation
If you like attributes to be intended from the promiser set Indentation amount
from anchor
to 2
. For example:
bundle agent main
{
vars:
"promiser"
string => "value",
comment => "Indented 2 spaces from promiser";
}
Execution of cfengine3
SRC blocks
This layers add support for cfengine3
source blocks in org files.
With the insertion point inside the SRC block press ,,
or CTRL-c Ctrl-c
bundle agent main
{
reports:
"Hello World!";
}
R: Hello World!
See the ob-cfengine3 README for information on controlling inclusion of the
stdlib, definition of classes and controlling the bundlesequence
using header
args.
To suppress the confirmation when executing a block set
(setq org-confirm-babel-evaluate nil)
in dotspacemacs/user-config()
.
Key bindings
Key Binding | Description |
---|---|
SPC m j |
Reformats JSON string |