fill out keyman example
[scpubgit/DKit.git] / examples / keyman
CommitLineData
7a668ea4 1rule dot_ssh_on { A D } {
2 home_dir_on A H
3 directory_in H '.ssh' D
4 mode D '0700'
5}
6
7rule authorized_keys_on { A F } {
8 dot_ssh_on A D
9 file_in D 'authorized_keys' F
10 mode F '0600'
11}
12
13rule key_installed_on { A K } {
14 authorized_keys_on A F
15 contains_line F K
16}
17
bf7d9637 18rule key_not_installed_on { A K } {
19 authorized_keys_on A F
20 not_contains_line F K
21}
22
7a668ea4 23rule my_config_dir D {
24 home_dir_on '' H
25 directory_in H '.keymangler' D
26}
27
bf7d9637 28rule my_config_file { C F } {
7a668ea4 29 my_config_dir D
30 file_in D C F
bf7d9637 31}
32
33rule config_contains_line { C L } {
34 my_config_file C F
7a668ea4 35 contains_line F L
36}
37
bf7d9637 38rule config_not_contains_line { C L } {
39 my_config_file C F
40 not_contains_line F L
41}
42
7a668ea4 43rule known_account A { config_contains_line 'accounts' A }
44rule known_key K { config_contains_line 'keys' K }
45rule known_dead D { config_contains_line 'keys.dead' D }
46
bf7d9637 47rule not_known_account A { config_not_contains_line 'accounts' A }
48rule not_known_key K { config_not_contains_line 'keys' K }
49rule not_known_dead D { config_not_contains_line 'keys.dead' D }
50
51rule account_synchronized A {
7a668ea4 52 foreach K { known_key K } { key_installed_on A K }
53}
bf7d9637 54
55rule all_synchronized {} {
56 foreach A { known_account A } { account_synchronized A }
57}
58
59rule unknown_installed_on { A K } {
60 key_installed_on A K
61 not { known_key K }
62}