Проект

Общее

Профиль

Cfengine » История » Версия 4

Андрей Волков, 2013-02-27 15:39

1 1 Андрей Волков
h1. Cfengine
2
3 2 Андрей Волков
h2. Документация
4
5
h3. Выдержки
6
7
> User defined classes are mostly defined in bundles, but they are used as a signalling mechanism between
8
> promises
9
10 3 Андрей Волков
> Classes promises define new classes based on combinations of old ones. This is how to make
11
> complex decisions in CFEngine, with readable results. It is like defining aliases for class combinations.
12
13 4 Андрей Волков
> Another type of class definition happens when you define classes based on the outcome of a promise
14
> classes => if_repaired("signal_class");
15
16 2 Андрей Волков
> CFEngine built-in words, and identifiers of your choosing (the names of variables, bundles, body
17
> templates and classes) may only contain the usual alphanumeric and underscore characters
18
> (‘a-zA-Z0-9 ̇’).
19
> All other ‘literal’ data must be quoted.
20
21
h2. Дополнительно
22
23 1 Андрей Волков
h3. /usr/share/vim/vimfiles/syntax/cfengine.vim
24
25
<pre>
26
" Vim syntax file
27
" Language:     Cfengine version 3.3
28
" Maintainer:   Andrey Volkov <volkov@ekb-info.ru>
29
" Last Change:  Tuesday February 26 2013 
30
" Location:
31
"
32
" This is my first attempt at a syntax file.  Feel free to send me correctsion
33
" or improvements.  I'll give you a credit.
34
"
35
" USAGE
36
" There is already a vim file that uses 'cf' as a file extention.  You can use
37
" cfengine for your cfengine file extentions or identify via your vimrc file:
38
" au BufRead,BufNewFile *.cf set ft=cfengine
39
"
40
" For version 5.x: Clear all syntax items
41
" For version 6.x: Quit when a syntax file was already loaded
42
if version < 600
43
    syntax clear
44
elseif exists ("b:current_syntax")
45
    finish
46
endif
47
48
syn case ignore
49
syn keyword cfengineBuiltin agent common server executor reporter monitor runagent action classes contained
50
51
syn keyword cfengineBuiltin abortbundleclasses abortclasses about_topics aces acl acl_directory_inherit contained
52
syn keyword cfengineBuiltin acl_method acl_type action_policy addclasses admit affects agent agentaccess contained
53
syn keyword cfengineBuiltin agentfacility aggregation_point allclassesreport allowallconnects contained
54
syn keyword cfengineBuiltin allow_blank_fields allowconnects allowusers alwaysvalidate args associates contained
55
syn keyword cfengineBuiltin association atime audit auditing authorize auto_scaling background contained
56
syn keyword cfengineBuiltin background_children backward_relationship before_after belongs_to contained
57
syn keyword cfengineBuiltin binarypaddingchar bindtointerface bsdflags build_directory bundlesequence contained
58
syn keyword cfengineBuiltin cancel_kept cancel_notkept cancel_repaired causes certainty cfruncommand contained
59
syn keyword cfengineBuiltin changes chdir check_foreign check_root checksum_alert_time childlibpath chroot contained
60
syn keyword cfengineBuiltin collapse_destination_dir command comment compare contain copy_backup copy_from contained
61
syn keyword cfengineBuiltin copylink_patterns copy_patterns copy_size create csv2xml ctime database_columns contained
62
syn keyword cfengineBuiltin database_operation database_rows database_server database_type data_type contained
63
syn keyword cfengineBuiltin db_server_connection_db db_server_host db_server_owner db_server_password contained
64
syn keyword cfengineBuiltin db_server_type defaultcopytype default_repository default_timeout delete contained
65
syn keyword cfengineBuiltin delete_if_contains_from_list delete_if_match_from_list contained
66
syn keyword cfengineBuiltin delete_if_not_contains_from_list delete_if_not_match_from_list contained
67
syn keyword cfengineBuiltin delete_if_not_startwith_from_list delete_if_startwith_from_list delete_select contained
68
syn keyword cfengineBuiltin deny denybadclocks denyconnects depends_on depth depth_search determines contained
69
syn keyword cfengineBuiltin dirlinks disable disable_mode disable_suffix dist document_root domain dryrun contained
70
syn keyword cfengineBuiltin dynamicaddresses edit_backup editbinaryfilesize edit_defaults edit_field contained
71
syn keyword cfengineBuiltin editfilesize edit_fstab edit_line edit_template edit_xml contained
72
syn keyword cfengineBuiltin empty_file_before_editing encrypt env_addresses env_baseline env_cpus env_disk contained
73
syn keyword cfengineBuiltin environment environment_host environment_interface environment_resources contained
74
syn keyword cfengineBuiltin environment_state environment_type env_memory env_name env_network env_spec contained
75
syn keyword cfengineBuiltin error_bars exclamation exclude_dirs exclude_hosts exec_command exec_group contained
76
syn keyword cfengineBuiltin exec_owner exec_program exec_regex exec_timeout executorfacility expand_scalars contained
77
syn keyword cfengineBuiltin expireafter export_zenoss extend_fields extraction_regex contained
78
syn keyword cfengineBuiltin failed_returncodes federation field_operation field_separator field_value contained
79
syn keyword cfengineBuiltin file_result files_auto_define file_select files_single_copy file_to_print contained
80
syn keyword cfengineBuiltin file_types findertype fips_mode first_last force_ipv4 force_update forgetrate contained
81
syn keyword cfengineBuiltin forward_relationship freespace friend_pattern generalizations generate_manual contained
82
syn keyword cfengineBuiltin goal_patterns graph_directory graph_output groups handle hash hashupdates contained
83
syn keyword cfengineBuiltin histograms history_type host_licenses_paid hostnamekeys hosts html_banner contained
84
syn keyword cfengineBuiltin html_embed html_footer hub_schedule id_prefix ifelapsed ifencrypted ifvarclass contained
85
syn keyword cfengineBuiltin ignore_missing_bundles ignore_missing_inputs include_basedir include_dirs contained
86
syn keyword cfengineBuiltin include_end_delimiter include_start_delimiter inform inputs in_range_define contained
87
syn keyword cfengineBuiltin insert_if_contains_from_list insert_if_match_from_list contained
88
syn keyword cfengineBuiltin insert_if_not_contains_from_list insert_if_not_match_from_list contained
89
syn keyword cfengineBuiltin insert_if_not_startwith_from_list insert_if_startwith_from_list insert_select contained
90
syn keyword cfengineBuiltin insert_type intermittency involves ipv4_address ipv4_netmask ipv6_address contained
91
syn keyword cfengineBuiltin is_caused_by is_connected_to is_determined_by is_followed_by is_located_in contained
92
syn keyword cfengineBuiltin is_part_of is_preceded_by issymlinkto kept_returncodes keycacheTTL knowledge contained
93
syn keyword cfengineBuiltin lastseen lastseenexpireafter leaf_name link_children linkcopy_patterns contained
94
syn keyword cfengineBuiltin link_from link_type location logallconnections logencryptedtransfers log_failed contained
95
syn keyword cfengineBuiltin log_kept log_level log_priority log_repaired log_string mailfrom mailmaxlines contained
96
syn keyword cfengineBuiltin mailto manual_source_directory maproot match_range match_value max_children contained
97
syn keyword cfengineBuiltin maxconnections max_file_size measurement_class meta mode module monitor contained
98
syn keyword cfengineBuiltin monitorfacility mount mountfilesystems mount_options mount_server mount_source contained
99
syn keyword cfengineBuiltin mount_type move_obstructions mtime needs newname nonalphanumfiles no_output contained
100
syn keyword cfengineBuiltin not_matching number_of_lines occurrences out_of_range_define contained
101
syn keyword cfengineBuiltin output_directory output_level output_prefix output_to_file owners contained
102
syn keyword cfengineBuiltin package_add_command package_architectures package_arch_regex package_changes contained
103
syn keyword cfengineBuiltin package_delete_command package_delete_convention package_file_repositories contained
104
syn keyword cfengineBuiltin package_installed_regex package_list_arch_regex package_list_command contained
105
syn keyword cfengineBuiltin package_list_name_regex package_list_update_command contained
106
syn keyword cfengineBuiltin package_list_update_ifelapsed package_list_version_regex package_method contained
107
syn keyword cfengineBuiltin package_multiline_start package_name_convention package_name_regex contained
108
syn keyword cfengineBuiltin package_noverify_regex package_noverify_returncode package_patch_arch_regex contained
109
syn keyword cfengineBuiltin package_patch_command package_patch_installed_regex package_patch_list_command contained
110
syn keyword cfengineBuiltin package_patch_name_regex package_patch_version_regex package_policy contained
111
syn keyword cfengineBuiltin package_select package_update_command package_verify_command package_version contained
112
syn keyword cfengineBuiltin package_version_regex path_name pathtype perms persistence persist_time pgid contained
113
syn keyword cfengineBuiltin pid port portnumber ppid precedents preserve preview printfile priority contained
114
syn keyword cfengineBuiltin process_count process_owner process_result process_select process_stop contained
115
syn keyword cfengineBuiltin promise_kept promise_repaired promiser_type provides purge qualifiers contained
116
syn keyword cfengineBuiltin query_engine query_output recognize_join refresh_processes contained
117
syn keyword cfengineBuiltin registry_exclude rename repair_denied repaired_returncodes repair_failed contained
118
syn keyword cfengineBuiltin repair_timeout repchar replace_value replace_with report_changes report_diffs contained
119
syn keyword cfengineBuiltin report_level report_output reports report_to_file repository representation contained
120
syn keyword cfengineBuiltin represents require_comments resource_type restart_class rlist rmdeadlinks contained
121
syn keyword cfengineBuiltin rmdirs rotate rsize rxdirs scan_arrivals schedule search_bsdflags search_groups contained
122
syn keyword cfengineBuiltin search_mode search_owners search_size secureinput select_class select_end contained
123
syn keyword cfengineBuiltin select_field select_line_matching select_line_number select_region select_start contained
124
syn keyword cfengineBuiltin sensiblecount sensible_count sensiblesize sensible_size server serverfacility contained
125
syn keyword cfengineBuiltin servers service_args service_autostart_policy service_bundle contained
126
syn keyword cfengineBuiltin service_dependence_chain service_dependencies service_method service_policy contained
127
syn keyword cfengineBuiltin service_type showstate signals site_classes skipidentify skipverify contained
128
syn keyword cfengineBuiltin smtpserver source specify_inherit_aces splaytime sql_connection_db sql_database contained
129
syn keyword cfengineBuiltin sql_owner sql_passwd sql_server sql_type start_fields_from_zero status stealth contained
130
syn keyword cfengineBuiltin stime_range stream_type style_sheet suspiciousnames synonyms syslog contained
131
syn keyword cfengineBuiltin syslog_host syslog_port tcpdump tcpdumpcommand tcp_ip threads timeout contained
132
syn keyword cfengineBuiltin timer_policy time_stamps timezone touch track_growing_file track_value contained
133
syn keyword cfengineBuiltin transformer traverse_links trustkey trustkeysfrom ttime_range tty type_check contained
134
syn keyword cfengineBuiltin umask units unmount update_hashes usebundle uses useshell value_kept contained
135
syn keyword cfengineBuiltin value_notkept value_repaired value_separator verbose verify version contained
136
syn keyword cfengineBuiltin view_projections volume vsize when_linking_children when_no_source contained
137
syn keyword cfengineBuiltin whitespace_policy xdev xorcontained
138
139
syn match   cfengineBody         /^\s*body [^ ]\+ / contains=cfengineBuiltin
140
syn match   cfengineBundle       /^\s*bundle [^ ]\+ / contains=cfengineBuiltin
141
syn keyword TODO todo contained
142
syn match   cfengineComment      /#.*/ contains=TODO
143
syn match   cfengineSetVar       /\s*[0-9a-z_]\+\s*=>/ contains=cfengineBuiltin,cfengineType,cfengineIdentifier
144
syn match   cfengineIdentifier   /\s=>\s/ contained
145
" For actions e.g. reports:, commands:
146
syn match   cfengineAction       /[^:#]\+:\s*$/
147
syn match   cfengineClass        /[^:#]\+::\s*$/
148
" Escape sequences in regexes
149
syn match   cfengineEsc          /\\\\[sSdD+][\+\*]*/ contained
150
" Array indexes contained in [].  Does not seems to be working.
151
syn region  cfengineArray        start=/\[/ end=/\]/ contained contains=cfengineVar
152
" Variables wrapped in {} or ()
153
syn region  cfengineVar          start=/[$@][(]/ end=/[)]/ contained contains=cfengineVar,cfengineArray
154
syn region  cfengineString       start=/\z\("\|'\)/ skip=/\\\z1/ end=/\z1/ contains=cfengineVar,cfengineArray,cfengineEsc
155
syn keyword cfengineType         int ilist slist float not and or xor string expression real rlist policy
156
syn keyword cfengineOnOff        on off yes no true false  
157
158
if version >= 508 || !exists("did_cfg_syn_inits")
159
    if version < 508
160
        let did_cfg_syn_inits = 1
161
        command -nargs=+ HiLink hi link <args>
162
    else
163
        command -nargs=+ HiLink hi def link <args>
164
    endif
165
    HiLink cfengineBody          Function
166
    HiLink cfengineBundle        Function
167
    HiLink cfengineBuiltin     Keyword
168
    HiLink cfengineComment	    Comment
169
    HiLink cfengineIdentifier    Identifier
170
    HiLink cfengineAction        Underlined
171
    HiLink cfengineClass         Statement
172
    HiLink cfengineEsc           Special
173
    HiLink cfengineArray         Special
174
    HiLink cfengineVar           Special
175
    HiLink cfengineString        String
176
    HiLink cfengineType          Type
177
    HiLink cfengineOnOff         Boolean
178
179
    delcommand HiLink
180
endif
181
let b:current_syntax = "cfengine"
182
183
" CREDITS
184
" Andrey Volkov <volkov@ekb-info.ru>
185
" Neil Watson <neil@watson-wilson.ca>
186
" Aleksey Tsalolikhin
187
" John Coleman of Yale U
188
" Matt Lesko
189
</pre>
190
191
h3. /usr/share/vim/vimfiles/ftdetect/cfengine.vim
192
193
<pre>
194
au BufNewFile,BufRead /*var/cfengine/inputs/* set filetype=cfengine
195
au BufNewFile,BufRead /*var/cfengine/masterfiles/* set filetype=cfengine
196
</pre>