spacemacs/layers/+tools/cfengine/README.org

87 lines
2.5 KiB
Org Mode
Raw Normal View History

2016-04-14 21:48:33 +00:00
#+TITLE: CFEngine layer
#+PROPERTY: header-args :eval never-export
2016-04-14 21:48:33 +00:00
[[file:./img/agent.png]]
* Table of Contents :TOC_4_gh:noexport:
2017-05-22 14:16:12 +00:00
- [[#description][Description]]
- [[#install][Install]]
- [[#configuration][Configuration]]
- [[#set-file-permission-on-save][Set file permission on save]]
- [[#indendation][Indendation]]
- [[#execution-of-cfengine3-src-blocks][Execution of =cfengine3= SRC blocks]]
2017-05-22 14:16:12 +00:00
- [[#key-bindings][Key bindings]]
2016-04-14 21:48:33 +00:00
* 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 in =org-mode= (via ob-cfengine3 package)
2016-04-14 21:48:33 +00:00
* Install
2016-04-14 21:48:33 +00:00
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:
2016-04-14 21:48:33 +00:00
=File ./example.cf (owner 1000) is writable by others (security exception)=
2016-04-14 21:48:33 +00:00
#+BEGIN_SRC elisp
(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)
#+END_SRC
2016-04-14 21:48:33 +00:00
** Indendation
2016-04-14 21:48:33 +00:00
If you like attributes to be intended from the promiser set =Indentation amount
from anchor= to =2=. For example:
#+begin_src cfengine3
bundle agent main
{
vars:
"promiser"
string => "value",
comment => "Indented 2 spaces from promiser";
}
#+end_src
* 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~
2017-10-18 14:55:25 +00:00
#+BEGIN_SRC cfengine3
bundle agent main
{
reports:
"Hello World!";
}
#+END_SRC
#+RESULTS:
: R: Hello World!
See the ob-cfengine3 [[https://github.com/nickanderson/ob-cfengine3/blob/master/README.org][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()=.
2016-04-14 21:48:33 +00:00
* Key bindings
| Key Binding | Description |
|-------------+-----------------------|
2017-04-25 15:42:58 +00:00
| ~SPC m j~ | Reformats JSON string |