Commit | Line | Data |
7a668ea4 |
1 | rule dot_ssh_on { A D } { |
2 | home_dir_on A H |
3 | directory_in H '.ssh' D |
4 | mode D '0700' |
5 | } |
6 | |
7 | rule authorized_keys_on { A F } { |
8 | dot_ssh_on A D |
9 | file_in D 'authorized_keys' F |
10 | mode F '0600' |
11 | } |
12 | |
13 | rule key_installed_on { A K } { |
14 | authorized_keys_on A F |
15 | contains_line F K |
16 | } |
17 | |
18 | rule my_config_dir D { |
19 | home_dir_on '' H |
20 | directory_in H '.keymangler' D |
21 | } |
22 | |
23 | rule config_contains_line { C L } { |
24 | my_config_dir D |
25 | file_in D C F |
26 | contains_line F L |
27 | } |
28 | |
29 | rule known_account A { config_contains_line 'accounts' A } |
30 | rule known_key K { config_contains_line 'keys' K } |
31 | rule known_dead D { config_contains_line 'keys.dead' D } |
32 | |
33 | rule sync_account A { |
34 | foreach K { known_key K } { key_installed_on A K } |
35 | } |