machinery-tool 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS +18 -0
  3. data/html/assets/machinery.css +20 -1
  4. data/html/assets/machinery.js +53 -26
  5. data/html/index.html.haml +69 -46
  6. data/lib/analyze_config_file_diffs_task.rb +1 -1
  7. data/lib/array.rb +36 -14
  8. data/lib/cli.rb +45 -50
  9. data/lib/compare_task.rb +1 -1
  10. data/lib/config.rb +8 -2
  11. data/lib/config_base.rb +14 -1
  12. data/lib/element_filter.rb +48 -11
  13. data/lib/exceptions.rb +5 -0
  14. data/lib/filter.rb +63 -14
  15. data/lib/filter_option_parser.rb +83 -0
  16. data/lib/generate_html_task.rb +3 -1
  17. data/lib/hint.rb +36 -18
  18. data/lib/html.rb +1 -0
  19. data/lib/inspect_task.rb +12 -21
  20. data/lib/inspector.rb +13 -6
  21. data/lib/kiwi_config.rb +17 -14
  22. data/lib/list_task.rb +5 -1
  23. data/lib/local_system.rb +3 -4
  24. data/lib/logged_cheetah.rb +3 -1
  25. data/lib/machinery.rb +1 -0
  26. data/lib/object.rb +24 -19
  27. data/lib/scope_file_store.rb +3 -1
  28. data/lib/show_task.rb +5 -7
  29. data/lib/system_description.rb +11 -12
  30. data/lib/system_description_store.rb +1 -1
  31. data/lib/ui.rb +44 -36
  32. data/lib/upgrade_format_task.rb +4 -1
  33. data/lib/version.rb +1 -1
  34. data/man/generated/machinery.1.gz +0 -0
  35. data/man/generated/machinery.1.html +7 -2
  36. data/plugins/inspect/changed_managed_files_inspector.rb +13 -6
  37. data/plugins/inspect/config_files_inspector.rb +27 -20
  38. data/plugins/inspect/groups_inspector.rb +12 -4
  39. data/plugins/inspect/os_inspector.rb +29 -22
  40. data/plugins/inspect/packages_inspector.rb +13 -5
  41. data/plugins/inspect/patterns_inspector.rb +24 -10
  42. data/plugins/inspect/repositories_inspector.rb +19 -15
  43. data/plugins/inspect/services_inspector.rb +28 -22
  44. data/plugins/inspect/unmanaged_files_inspector.rb +42 -33
  45. data/plugins/inspect/users_inspector.rb +13 -5
  46. data/plugins/model/os_model.rb +1 -1
  47. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 184d1ef94950678ea43a32a035f1b49393fcaa3a
4
- data.tar.gz: 4e4135549b3a332ae78c453100797d8bcc121ecf
3
+ metadata.gz: 725a9e95df8830f8b6d31b967a03bc08286a99b4
4
+ data.tar.gz: e4ede1e631fb2e78d4d74ae0859cbdcb4a1da40b
5
5
  SHA512:
6
- metadata.gz: 19f792e485da42fa7e8dad80d822cd0890f92ffc9cb96a89621bb86b8830388b061b8db39e96fd0afe86d3fe1d3f3a1f7728f8dc9d5788b756619831970b4e65
7
- data.tar.gz: e692387ddaf55efb16418c5b2db7ff7be53b7d5f0ffb46a2cae6297e0ce4ad090b1455140fef1f4500d7223111f8e1ce9c705b19054cc8ed553f8d8b6e7f1ed1
6
+ metadata.gz: 74773fd5aa6a4b23b52c9d27771a4a3ca1762f76a6169ce92b6e9380bf3a5233dd28fd68c05b2ae73721edc5cebbbc57750d8b68ef93784dad5337c66f7b734e
7
+ data.tar.gz: 580e1e8201d3ea4e1d58bd68a60192988a4539eb9811f8312e40414fec65caaa9146138c46dd1a445aac4098f60e102149d9e9452771cc2597202a4e3fbf581e
data/NEWS CHANGED
@@ -1,6 +1,24 @@
1
1
  # Machinery Release Notes
2
2
 
3
3
 
4
+ ## Version 1.6.0 - Wed Apr 01 15:43:17 CEST 2015 - thardeck@suse.de
5
+
6
+ * Add experimental `--exclude` option to exclude elements from inspection.
7
+ Run `machinery config experimental-features on` to enable the option
8
+ * Support global `--exclude` option for `show` command.
9
+ This feature is available when the experimental-features option is on.
10
+ * Add `--verbose` option to `inspect` command to display the filters which
11
+ were used during inspection
12
+ * Add `--verbose` option to `show` command to display the filters which were
13
+ applied before showing the system description
14
+ * Show progress on upgrading the system description format
15
+ * Improve help for users when upgrading system descriptions
16
+ * Fix piping output of Machinery to less (gh#SUSE/machinery#521)
17
+ * Better help for users when upgrading format of system descriptions
18
+ * Add option to show command to display filters used during inspection
19
+ * Support negated filter expressions in --exclude option
20
+ * Show filters used during inspection in HTML view
21
+
4
22
  ## Version 1.5.0 - Fri Mar 13 13:03:47 CET 2015 - thardeck@suse.de
5
23
 
6
24
  * Fix issue with changes of managed files on RHEL (gh#SUSE/machinery#636)
@@ -32,10 +32,12 @@ a.scope_anchor {
32
32
  }
33
33
 
34
34
  .scope-navigation {
35
- font-size: 60%;
36
35
  margin-left: 30px;
37
36
  }
38
37
 
38
+ .inspection_details {
39
+ margin-left: 30px;
40
+ }
39
41
 
40
42
  .filter-input {
41
43
  margin-bottom: 10px;
@@ -66,6 +68,10 @@ span.toggle.collapsed {
66
68
  max-width: 800px;
67
69
  }
68
70
 
71
+ .popover button.close {
72
+ padding: 6px;
73
+ }
74
+
69
75
  h1 {
70
76
  color: #3D3A38;
71
77
  }
@@ -124,8 +130,21 @@ table.diff td.linenumber {
124
130
  border-right: solid 1px #cccccc;
125
131
  }
126
132
 
133
+ .inspection-details-popover .popover-content,
127
134
  .diff-popover .popover-content {
128
135
  max-height: 500px;
129
136
  overflow-y: auto;
130
137
  font-family: monospace;
131
138
  }
139
+
140
+ .inspection-details-popover {
141
+ min-width: 800px;
142
+ }
143
+
144
+ li.filter {
145
+ font-family: monospace;
146
+ }
147
+
148
+ h1 {
149
+ display: inline-block;
150
+ }
@@ -30,7 +30,9 @@ $(document).ready(function () {
30
30
  $.each(scopes, function(index, scope) {
31
31
  templates[scope] = Hogan.compile($("#scope_" + scope).html());
32
32
  });
33
- template = Hogan.compile($('#content').html());
33
+ templates["inspection_details_template"] =
34
+ Hogan.compile($("#inspection_details_template").html());
35
+ template = Hogan.compile($("#content").html());
34
36
  $("#content_container").html(
35
37
  template.render(description, templates)
36
38
  );
@@ -71,7 +73,7 @@ $(document).ready(function () {
71
73
  $("#filter").keyup(function() {
72
74
  run_when_done_typing(function() {
73
75
  filterdocument();
74
- }, 500)
76
+ }, 500);
75
77
  });
76
78
 
77
79
  clearFilter = function() {
@@ -85,52 +87,55 @@ $(document).ready(function () {
85
87
  $("a.scope_anchor").css("height", header_height);
86
88
  $("a.scope_anchor").css("margin-top", -header_height);
87
89
 
88
- $('.scope_logo_big').each(function(){
90
+ $(".scope_logo_big").each(function(){
89
91
  var icon = $(this);
90
92
  $(window).scroll(function() {
91
- icon.removeClass('fixed');
93
+ icon.removeClass("fixed");
92
94
  var pos = icon.offset();
93
95
  var top_pos = $(this).scrollTop() + header_height;
94
- if(top_pos >= pos.top && icon.css('position') == 'static') {
95
- icon.addClass('fixed').css("top", header_height);
96
- } else if(top_pos <= pos.top && icon.hasClass('fixed')) {
97
- icon.removeClass('fixed');
96
+ if(top_pos >= pos.top && icon.css("position") == "static") {
97
+ icon.addClass("fixed").css("top", header_height);
98
+ } else if(top_pos <= pos.top && icon.hasClass("fixed")) {
99
+ icon.removeClass("fixed");
98
100
  }
99
101
  })
100
102
  });
101
103
 
102
104
  // Hook up the toggle links
103
- $('.toggle').click(function(){
104
- $(this).closest('.scope').find('.scope_content').collapse('toggle');
105
+ $(".toggle").click(function(){
106
+ $(this).closest(".scope").find(".scope_content").collapse("toggle");
105
107
  $(this).toggleClass("collapsed");
106
108
  });
107
109
 
108
110
  $("#collapse-all").click(function(){
109
- $(".scope_content").collapse('hide');
111
+ $(".scope_content").collapse("hide");
110
112
  $(".toggle").addClass("collapsed");
111
113
  $(this).hide();
112
114
  $("#expand-all").show();
113
115
  });
114
116
 
115
117
  $("#expand-all").click(function(){
116
- $(".scope_content").collapse('show');
118
+ $(".scope_content").collapse("show");
117
119
  $(".toggle").removeClass("collapsed");
118
120
  $(this).hide();
119
121
  $("#collapse-all").show();
120
122
  });
121
123
 
124
+ // Set up scope icon popovers
122
125
  $("img").popover({
123
126
  trigger: "hover",
124
127
  html: true
125
128
  });
129
+
130
+ // Set up config file diffs popovers
126
131
  var counter;
127
132
  $(".diff-toggle").popover({
128
133
  trigger: "mouseenter",
129
134
  html: true,
130
- template: '<div class="popover diff-popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
135
+ template: "<div class='popover diff-popover' role='tooltip'><div class='arrow'></div><h3 class='popover-title'></h3><div class='popover-content'></div></div>",
131
136
  content: function() {
132
137
  file = $(this).data("config-file");
133
- return $('*[data-config-file-diff="' + file + '"]').html();
138
+ return $("*[data-config-file-diff='" + file + "']").html();
134
139
  },
135
140
  title: function() {
136
141
  return "Changes for '" + $(this).data("config-file") + "'";
@@ -138,30 +143,52 @@ $(document).ready(function () {
138
143
  }).on("mouseenter",function () {
139
144
  clearTimeout(counter);
140
145
  var _this = this;
141
- $('.diff-toggle').not(_this).popover('hide');
146
+ $(".diff-toggle").not(_this).popover("hide");
142
147
 
143
148
  counter = setTimeout(function(){
144
149
  $(_this).popover("show");
145
150
  $(".diff-popover").on("mouseleave", function () {
146
- $('.diff-toggle').popover('hide');
151
+ $(".diff-toggle").popover("hide");
147
152
  });
148
153
  }, 100);
149
154
  }).on("mouseleave", function () {
150
155
  counter = setTimeout(function(){
151
156
  if (!$(".diff-popover:hover").length) {
152
- $('.diff-toggle').popover('hide');
157
+ $(".diff-toggle").popover("hide");
153
158
  }
154
159
  }, 500);
155
160
  });
156
161
 
157
- // Tooltips for service states
158
- $("td.systemd_enabled, td.systemd_enabled-runtime").attr("title", 'Enabled through a symlink in .wants directory (permanently or just in /run).')
159
- $("td.systemd_linked, td.systemd_linked-runtime").attr("title", 'Made available through a symlink to the unit file (permanently or just in /run).')
160
- $("td.systemd_masked, td.systemd_masked-runtime").attr("title", 'Disabled entirely (permanently or just in /run).')
161
- $("td.systemd_static").attr("title", 'Unit file is not enabled, and has no provisions for enabling in the "[Install]" section.')
162
- $("td.systemd_indirect").attr("title", 'Unit file itself is not enabled, but it has a non-empty Also= setting in the "[Install]" section, listing other unit files that might be enabled.')
163
- $("td.systemd_disabled").attr("title", 'Unit file is not enabled.')
164
- $("td.sysvinit_on").attr("title", 'Service is enabled')
165
- $("td.sysvinit_off").attr("title", 'Service is disabled')
162
+ // Set up inspection details popover
163
+ $("a.inspection_details").popover({
164
+ template: "<div class='popover inspection-details-popover' role='tooltip'>\
165
+ <div class='arrow'></div>\
166
+ <div class='popover-header'>\
167
+ <button type='button' class='close' onclick='$(\".inspection_details\").popover(\"hide\")'\
168
+ aria-hidden='true'>&times;</button>\
169
+ <h3 class='popover-title'></h3>\
170
+ </div>\
171
+ <div class='popover-content'></div>\
172
+ </div>",
173
+ trigger: "click",
174
+ placement: "bottom",
175
+ html: true,
176
+ content: function() {
177
+ return $("#inspection_details").html();
178
+ },
179
+ title: function() {
180
+ return "Inspection details";
181
+ }
182
+ });
183
+ $('.inspection-details-popover .close').click(function() { $(".inspection_details").popover("hide") });
166
184
 
185
+ // Tooltips for service states
186
+ $("td.systemd_enabled, td.systemd_enabled-runtime").attr("title", "Enabled through a symlink in .wants directory (permanently or just in /run).");
187
+ $("td.systemd_linked, td.systemd_linked-runtime").attr("title", "Made available through a symlink to the unit file (permanently or just in /run).");
188
+ $("td.systemd_masked, td.systemd_masked-runtime").attr("title", "Disabled entirely (permanently or just in /run).");
189
+ $("td.systemd_static").attr("title", "Unit file is not enabled, and has no provisions for enabling in the \"[Install]\" section.");
190
+ $("td.systemd_indirect").attr("title", "Unit file itself is not enabled, but it has a non-empty Also= setting in the \"[Install]\" section, listing other unit files that might be enabled.");
191
+ $("td.systemd_disabled").attr("title", "Unit file is not enabled.");
192
+ $("td.sysvinit_on").attr("title", "Service is enabled");
193
+ $("td.sysvinit_off").attr("title", "Service is disabled");
167
194
  });
data/html/index.html.haml CHANGED
@@ -12,6 +12,9 @@
12
12
  %script{:src => "assets/collapse.js"}
13
13
 
14
14
  %script#content{:type => "text/html"}
15
+ .hidden
16
+ {{>inspection_details_template}}
17
+
15
18
  {{>os}}
16
19
  {{>packages}}
17
20
  {{>patterns}}
@@ -23,14 +26,38 @@
23
26
  {{>config_files}}
24
27
  {{>services}}
25
28
 
29
+ %script#inspection_details_template{:type => "text/html"}
30
+ #inspection_details
31
+ #filters
32
+ .row
33
+ .col-xs-1
34
+ .col-xs-11
35
+ %h3 Filters used during Inspection
36
+
37
+ .row
38
+ .col-xs-1
39
+ .col-xs-11
40
+ {{#meta.filters.inspect.length}}
41
+ %ul
42
+ {{#meta.filters.inspect}}
43
+ %li.filter
44
+ {{.}}
45
+ {{/meta.filters.inspect}}
46
+ {{/meta.filters.inspect.length}}
47
+
48
+ {{^meta.filters.inspect.length}}
49
+ %p
50
+ No filters were used.
51
+ {{/meta.filters.inspect.length}}
52
+
53
+
26
54
  %script#scope_os.partial{:type => "text/html"}
27
55
  {{#os}}
28
56
  %a.scope_anchor{:id => "os"}
29
57
  #os_container.scope
30
58
  .row
31
59
  .col-xs-1
32
- %a{:href => "#os"}
33
- %img.scope_logo_big{:src => "assets/logo-os.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Operating System", :"data-content"=>"#{scope_help('os')}"}/
60
+ %img.scope_logo_big{:src => "assets/logo-os.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Operating System", :"data-content"=>"#{scope_help('os')}"}/
34
61
  %span.toggle{:title => "Collapse/Expand"}
35
62
  .col-xs-11
36
63
  %h2
@@ -57,8 +84,7 @@
57
84
  #packages_container.scope
58
85
  .row
59
86
  .col-xs-1
60
- %a{:href => "#packages"}
61
- %img.scope_logo_big{:src => "assets/logo-packages.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Packages", :"data-content"=>"#{scope_help('packages')}"}/
87
+ %img.scope_logo_big{:src => "assets/logo-packages.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Packages", :"data-content"=>"#{scope_help('packages')}"}/
62
88
  %span.toggle{:title => "Collapse/Expand"}
63
89
  .col-xs-11
64
90
  %h2
@@ -96,8 +122,7 @@
96
122
  #patterns_container.scope
97
123
  .row
98
124
  .col-xs-1
99
- %a{:href => "#patterns"}
100
- %img.scope_logo_big{:src => "assets/logo-patterns.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Patterns", :"data-content"=>"#{scope_help('patterns')}"}/
125
+ %img.scope_logo_big{:src => "assets/logo-patterns.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Patterns", :"data-content"=>"#{scope_help('patterns')}"}/
101
126
  %span.toggle{:title => "Collapse/Expand"}
102
127
  .col-xs-11
103
128
  %h2
@@ -129,8 +154,7 @@
129
154
  #users_container.scope
130
155
  .row
131
156
  .col-xs-1
132
- %a{:href => "#users"}
133
- %img.scope_logo_big{:src => "assets/logo-users.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Users", :"data-content"=>"#{scope_help('users')}"}/
157
+ %img.scope_logo_big{:src => "assets/logo-users.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Users", :"data-content"=>"#{scope_help('users')}"}/
134
158
  %span.toggle{:title => "Collapse/Expand"}
135
159
  .col-xs-11
136
160
  %h2
@@ -168,8 +192,7 @@
168
192
  #unmanaged_files_container.scope
169
193
  .row
170
194
  .col-xs-1
171
- %a{:href => "#unmanaged_files"}
172
- %img.scope_logo_big{:src => "assets/logo-unmanaged-files.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Unmanaged Files", :"data-content"=>"#{scope_help('unmanaged_files')}"}/
195
+ %img.scope_logo_big{:src => "assets/logo-unmanaged-files.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Unmanaged Files", :"data-content"=>"#{scope_help('unmanaged_files')}"}/
173
196
  %span.toggle{:title => "Collapse/Expand"}
174
197
  .col-xs-11
175
198
  %h2
@@ -199,8 +222,7 @@
199
222
  #groups_container.scope
200
223
  .row
201
224
  .col-xs-1
202
- %a{:href => "#groups"}
203
- %img.scope_logo_big{:src => "assets/logo-groups.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Groups", :"data-content"=>"#{scope_help('groups')}"}/
225
+ %img.scope_logo_big{:src => "assets/logo-groups.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Groups", :"data-content"=>"#{scope_help('groups')}"}/
204
226
  %span.toggle{:title => "Collapse/Expand"}
205
227
  .col-xs-11
206
228
  %h2
@@ -234,8 +256,7 @@
234
256
  #repositories_container.scope
235
257
  .row
236
258
  .col-xs-1
237
- %a{:href => "#repositories"}
238
- %img.scope_logo_big{:src => "assets/logo-repositories.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Repositories", :"data-content"=>"#{scope_help('repositories')}"}/
259
+ %img.scope_logo_big{:src => "assets/logo-repositories.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Repositories", :"data-content"=>"#{scope_help('repositories')}"}/
239
260
  %span.toggle{:title => "Collapse/Expand"}
240
261
  .col-xs-11
241
262
  %h2
@@ -278,8 +299,7 @@
278
299
  #changed_managed_files_container.scope
279
300
  .row
280
301
  .col-xs-1
281
- %a{:href => "#changed_managed_files"}
282
- %img.scope_logo_big{:src => "assets/logo-changed-managed-files.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Changed Managed Files", :"data-content"=>"#{scope_help('changed_managed_files')}"}/
302
+ %img.scope_logo_big{:src => "assets/logo-changed-managed-files.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Changed Managed Files", :"data-content"=>"#{scope_help('changed_managed_files')}"}/
283
303
  %span.toggle{:title => "Collapse/Expand"}
284
304
  .col-xs-11
285
305
  %h2
@@ -324,8 +344,7 @@
324
344
  #config_files_container.scope
325
345
  .row
326
346
  .col-xs-1
327
- %a{:href => "#config_files"}
328
- %img.scope_logo_big{:src => "assets/logo-config-files.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Config Files", :"data-content"=>"#{scope_help('config_files')}"}/
347
+ %img.scope_logo_big{:src => "assets/logo-config-files.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Config Files", :"data-content"=>"#{scope_help('config_files')}"}/
329
348
  %span.toggle{:title => "Collapse/Expand"}
330
349
  .col-xs-11
331
350
  %h2
@@ -393,8 +412,7 @@
393
412
  #services_container.scope
394
413
  .row
395
414
  .col-xs-1
396
- %a{:href => "#services"}
397
- %img.scope_logo_big{:src => "assets/logo-services.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Services", :"data-content"=>"#{scope_help('services')}"}/
415
+ %img.scope_logo_big{:src => "assets/logo-services.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Services", :"data-content"=>"#{scope_help('services')}"}/
398
416
  %span.toggle{:title => "Collapse/Expand"}
399
417
  .col-xs-11
400
418
  %h2
@@ -433,41 +451,46 @@
433
451
  .col-xs-10
434
452
  %h1
435
453
  System '#{description.name}'
436
- %span.scope-navigation
437
- Scopes:
438
- %a{:href => "#os", :title => "Operating System"}
439
- %img{:src => "assets/logo-os-small.png"}/
440
- %a{:href => "#packages", :title => "Packages"}
441
- %img{:src => "assets/logo-packages-small.png"}/
442
- %a{:href => "#patterns", :title => "Patterns"}
443
- %img{:src => "assets/logo-patterns-small.png"}/
444
- %a{:href => "#users", :title => "Users"}
445
- %img{:src => "assets/logo-users-small.png"}/
446
- %a{:href => "#groups", :title => "Groups"}
447
- %img{:src => "assets/logo-groups-small.png"}/
448
- %a{:href => "#repositories", :title => "Repositories"}
449
- %img{:src => "assets/logo-repositories-small.png"}/
450
- %a{:href => "#unmanaged_files", :title => "Unmanaged Files"}
451
- %img{:src => "assets/logo-unmanaged-files-small.png"}/
452
- %a{:href => "#changed_managed_files", :title => "Changed Managed Files"}
453
- %img{:src => "assets/logo-changed-managed-files-small.png"}/
454
- %a{:href => "#config_files", :title => "Config Files"}
455
- %img{:src => "assets/logo-config-files-small.png"}/
456
- %a{:href => "#services", :title => "Services"}
457
- %img{:src => "assets/logo-services-small.png"}/
454
+
455
+ %a.inspection_details{:href => "#", "data-toggle" => "popover"} (inspection details)
458
456
  .row
459
457
  .col-xs-1
460
- %a#expand-all{:style => "display: none"}
458
+ %a#expand-all{:href => "#", :style => "display: none"}
461
459
  Expand all
462
- %a#collapse-all
460
+ %a#collapse-all{:href => "#"}
463
461
  Collapse all
464
462
  .col-xs-10
465
463
  %small.pull-right.pad-top
466
464
  created by
467
465
  %a{:href => "http://machinery-project.org", :target => "_blank"}
468
466
  Machinery
469
- .filter-input
467
+ .filter-input.col-md-3
470
468
  %input#filter{:placeholder => "Type To Filter"}/
471
- %img{:src => "assets/reset.png", :titel => "Reset Filter", :onclick=>"clearFilter()" }
469
+ %a{:href => "#"}
470
+ %img{:src => "assets/reset.png", :titel => "Reset Filter", :onclick=>"clearFilter()" }
471
+
472
+ %span.scope-navigation
473
+ Scopes:
474
+ %a{:href => "#os", :title => "Operating System"}
475
+ %img{:src => "assets/logo-os-small.png"}/
476
+ %a{:href => "#packages", :title => "Packages"}
477
+ %img{:src => "assets/logo-packages-small.png"}/
478
+ %a{:href => "#patterns", :title => "Patterns"}
479
+ %img{:src => "assets/logo-patterns-small.png"}/
480
+ %a{:href => "#users", :title => "Users"}
481
+ %img{:src => "assets/logo-users-small.png"}/
482
+ %a{:href => "#groups", :title => "Groups"}
483
+ %img{:src => "assets/logo-groups-small.png"}/
484
+ %a{:href => "#repositories", :title => "Repositories"}
485
+ %img{:src => "assets/logo-repositories-small.png"}/
486
+ %a{:href => "#unmanaged_files", :title => "Unmanaged Files"}
487
+ %img{:src => "assets/logo-unmanaged-files-small.png"}/
488
+ %a{:href => "#changed_managed_files", :title => "Changed Managed Files"}
489
+ %img{:src => "assets/logo-changed-managed-files-small.png"}/
490
+ %a{:href => "#config_files", :title => "Config Files"}
491
+ %img{:src => "assets/logo-config-files-small.png"}/
492
+ %a{:href => "#services", :title => "Services"}
493
+ %img{:src => "assets/logo-services-small.png"}/
494
+
472
495
 
473
496
  #content_container
@@ -124,7 +124,7 @@ class AnalyzeConfigFileDiffsTask
124
124
  # available from the other repositories.
125
125
  # If they aren't an error message will then be generated for each of
126
126
  # the actually missing files instead.
127
- Machinery.logger.error(e.message)
127
+ Machinery.logger.error("Error: " + e.message)
128
128
  Machinery.logger.debug(e.backtrace.join("\n"))
129
129
  Machinery.logger.debug("Standard output:\n #{e.stdout}")
130
130
  Machinery.logger.debug("Error output:\n #{e.stderr}")