commit sketch files
[scpubgit/DKit.git] / notes / sketches / 5.km.commands.psuedo
1 command learn {
2   command key K {
3     ensure { known_key K }
4   }
5   command dead D {
6     ensure { known_dead D }
7   }
8   command account A {
9     ensure { known_account A }
10   }
11 }
12
13 command forget {
14   command key K {
15     ensure { not_known_key K }
16   }
17   command dead D {
18     ensure { not_known_dead D }
19   }
20   command account A {
21     ensure { not_known_account A }
22   }
23 }
24
25 command list {
26   command keys {} {
27     query* { known_key K } { puts $K }
28   }
29   command dead {} {
30     query* { known_dead D } { puts $D }
31   }
32   command accounts {} {
33     query* { known_account A } { puts $A }
34   }
35 }
36
37 command sync {} { ensure all_synchronized }
38
39 command sync A { ensure { account_synchronized A } }
40
41 command status {} {
42   query* {
43     known_account A
44     findall Known K { known_installed_on A K }
45     findall Unknown U { unknown_installed_on A U }
46     findall Dead D { dead_installed_on A D }
47   } {
48     puts "Host: $A"
49     foreach k $Known { puts "Known: $k" }
50     foreach u $Unknown { puts "Unknown: $u" }
51     foreach d $Dead { puts "Dead: $d" }
52   }
53 }