spacemacs/layers/+tools/cfengine
Nick Anderson 4cc57dea74 Fix automatic syntax checking for cfengine
The wrong mode for cfengine was specified for enabling flycheck. This properly
loads flycheck support when cfengine3 mode is active.
2018-05-11 00:42:52 -04:00
..
img
packages.el Fix automatic syntax checking for cfengine 2018-05-11 00:42:52 -04:00
README.org Fix doc for common-lisp, bibtex, cfengine and gnus layer 2018-01-12 00:37:15 -05:00

CFEngine layer

/TakeV/spacemacs/media/commit/862e81e49aefd6689e9d92a150212ac46ec66e99/layers/+tools/cfengine/img/agent.png

Description

This layer adds support for CFEngine policies to Spacemacs.

Features:

  • Syntax highlighting
  • On the fly syntax checking via flycheck integration.
  • Auto completion via company integration.
  • Execution of cfengine3 SRC blocks in org-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