machinery-tool 1.14.0 → 1.14.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.git_revision +1 -1
- data/NEWS +10 -0
- data/html/assets/compare/machinery.js +1 -0
- data/html/assets/jquery.searcher.min.js +5 -0
- data/html/assets/machinery.css +3 -0
- data/html/assets/show/machinery.js +10 -4
- data/html/comparison.html.haml +18 -652
- data/html/index.html.haml +93 -431
- data/html/partials/changed_managed_files.html.haml +41 -0
- data/html/partials/compare/alert.html.haml +22 -0
- data/html/partials/compare/changed_managed_file_list.html.haml +26 -0
- data/html/partials/compare/changed_managed_files.html.haml +57 -0
- data/html/partials/compare/config_file_list.html.haml +26 -0
- data/html/partials/compare/config_files.html.haml +54 -0
- data/html/partials/compare/group_list.html.haml +14 -0
- data/html/partials/compare/groups.html.haml +52 -0
- data/html/partials/compare/os.html.haml +32 -0
- data/html/partials/compare/os_table.html.haml +10 -0
- data/html/partials/compare/package_list.html.haml +23 -0
- data/html/partials/compare/packages.html.haml +66 -0
- data/html/partials/compare/pattern_list.html.haml +12 -0
- data/html/partials/compare/patterns.html.haml +53 -0
- data/html/partials/compare/repositories.html.haml +51 -0
- data/html/partials/compare/repository_list.html.haml +28 -0
- data/html/partials/compare/service_list.html.haml +11 -0
- data/html/partials/compare/services.html.haml +56 -0
- data/html/partials/compare/unmanaged_file_list.html.haml +13 -0
- data/html/partials/compare/unmanaged_files.html.haml +59 -0
- data/html/partials/compare/user_list.html.haml +18 -0
- data/html/partials/compare/users.html.haml +52 -0
- data/html/partials/config_files.html.haml +57 -0
- data/html/partials/groups.html.haml +25 -0
- data/html/partials/os.html.haml +26 -0
- data/html/partials/packages.html.haml +30 -0
- data/html/partials/patterns.html.haml +23 -0
- data/html/partials/repositories.html.haml +35 -0
- data/html/partials/scope_header.html.haml +17 -0
- data/html/partials/services.html.haml +23 -0
- data/html/partials/unmanaged_files.html.haml +28 -0
- data/html/partials/users.html.haml +29 -0
- data/lib/cli.rb +48 -40
- data/lib/exceptions.rb +7 -0
- data/lib/helper.rb +21 -0
- data/lib/hint.rb +1 -1
- data/lib/html.rb +9 -1
- data/lib/scope_file_access_archive.rb +1 -2
- data/lib/scope_file_access_flat.rb +1 -2
- data/lib/server.rb +104 -50
- data/lib/version.rb +1 -1
- data/machinery-helper/version.go +1 -1
- data/man/generated/machinery.1.gz +0 -0
- data/man/generated/machinery.1.html +106 -16
- metadata +47 -18
- data/html/assets/angular-sanitize.min.js +0 -16
- data/html/assets/angular.min.js +0 -251
- data/html/assets/compare/machinery-compare.js +0 -100
- data/html/assets/show/machinery-show.js +0 -72
@@ -0,0 +1,41 @@
|
|
1
|
+
- if changed_managed_files && changed_managed_files.files.length > 0
|
2
|
+
%div
|
3
|
+
%a.scope_anchor{ id: "changed_managed_files" }
|
4
|
+
.scope#changed_managed_files_container{ "data-scope" => "changed_managed_files" }
|
5
|
+
- count = changed_managed_files.files.length
|
6
|
+
= render_partial "scope_header",
|
7
|
+
:scope => "changed_managed_files",
|
8
|
+
:title => "Changed Managed Files",
|
9
|
+
:count => "#{count} #{Machinery.pluralize(count, "file")}"
|
10
|
+
.row.scope_content.collapse.in
|
11
|
+
.col-xs-1
|
12
|
+
.col-xs-11
|
13
|
+
%table.table.table-striped.table-hover.table-condensed.files-table.filterable
|
14
|
+
%thead
|
15
|
+
%tr
|
16
|
+
%th Name
|
17
|
+
%th Package Name
|
18
|
+
%th Package Version
|
19
|
+
%th Changes
|
20
|
+
%th Mode
|
21
|
+
%th User
|
22
|
+
%th Group
|
23
|
+
%tbody
|
24
|
+
- changed_managed_files.files.each do |file|
|
25
|
+
%tr
|
26
|
+
%td
|
27
|
+
- if file.on_disk?
|
28
|
+
%a.file-download{ href: "#" }
|
29
|
+
= file.name
|
30
|
+
- else
|
31
|
+
%span
|
32
|
+
= file.name
|
33
|
+
%td= file.package_name
|
34
|
+
%td= file.package_version
|
35
|
+
%td
|
36
|
+
= file.changes.join(",")
|
37
|
+
- if file.error_message
|
38
|
+
%span{ title: file.error_message } (details)
|
39
|
+
%td= file.mode
|
40
|
+
%td= file.user
|
41
|
+
%td= file.group
|
@@ -0,0 +1,22 @@
|
|
1
|
+
- if @meta[:uninspected]
|
2
|
+
.scope#alert_container
|
3
|
+
.row
|
4
|
+
.col-xs-10.col-xs-offset-1
|
5
|
+
.well
|
6
|
+
%span.text-right.dismiss{ title: "Collapse/Expand" }
|
7
|
+
- if @meta[:uninspected][@description_a.name]
|
8
|
+
%p
|
9
|
+
Couldn't compare
|
10
|
+
%strong
|
11
|
+
'#{@meta[:uninspected][@description_a.name].join(", ")}'
|
12
|
+
because they are not present in description
|
13
|
+
%strong
|
14
|
+
'#{@description_a.name}'
|
15
|
+
- if @meta[:uninspected][@description_b.name]
|
16
|
+
%p
|
17
|
+
Couldn't compare
|
18
|
+
%strong
|
19
|
+
'#{@meta[:uninspected][@description_b.name].join(", ")}'
|
20
|
+
because they are not present in description
|
21
|
+
%strong
|
22
|
+
'#{@description_b.name}'
|
@@ -0,0 +1,26 @@
|
|
1
|
+
%p
|
2
|
+
<strong>Files extracted:</strong> #{list.extracted ? "yes" : "no"}
|
3
|
+
- if list.files
|
4
|
+
%table.table.table-striped.table-hover.table-condensed.files-table
|
5
|
+
%thead
|
6
|
+
%tr
|
7
|
+
%th Name
|
8
|
+
%th Package Name
|
9
|
+
%th Package Version
|
10
|
+
%th.small Changes
|
11
|
+
%th.small Mode
|
12
|
+
%th.small User
|
13
|
+
%th.small Group
|
14
|
+
%tbody
|
15
|
+
- list.files.each do |file|
|
16
|
+
%tr
|
17
|
+
%td= file.name
|
18
|
+
%td= file.package_name
|
19
|
+
%td= file.package_version
|
20
|
+
%td
|
21
|
+
= file.changes.join(",")
|
22
|
+
- if file.error_message
|
23
|
+
%span{ title: file.error_message } (details)
|
24
|
+
%td= file.mode
|
25
|
+
%td= file.user
|
26
|
+
%td= file.group
|
@@ -0,0 +1,57 @@
|
|
1
|
+
- if @diff["changed_managed_files"]
|
2
|
+
%a.scope_anchor{ id: "changed_managed_files" }
|
3
|
+
.scope#changed_managed_files_container
|
4
|
+
.row
|
5
|
+
.col-xs-1
|
6
|
+
%a{ href: "#changed_managed_files" }
|
7
|
+
%img.over.scope_logo_big{ :src => "/assets/logo-changed-managed-files.png",
|
8
|
+
"data-toggle" => "popover",
|
9
|
+
:title => "Changed Managed Files",
|
10
|
+
"data-content" => "#{scope_help("changed_managed_files")}" }
|
11
|
+
%span.toggle{ title: "Collapse/Expand" }
|
12
|
+
.col-xs-11
|
13
|
+
%h2
|
14
|
+
Changed Managed Files
|
15
|
+
.scope-summary
|
16
|
+
- if @diff["changed_managed_files"].only_in1
|
17
|
+
%span.summary-part
|
18
|
+
#{@description_a.name}:
|
19
|
+
#{safe_length(@diff["changed_managed_files"].only_in1, :files)} files
|
20
|
+
- if @diff["changed_managed_files"].only_in2
|
21
|
+
%span.summary-part
|
22
|
+
#{@description_b.name}:
|
23
|
+
#{safe_length(@diff["changed_managed_files"].only_in2, :files)} files
|
24
|
+
- if @diff["changed_managed_files"].common
|
25
|
+
%span.summary-part
|
26
|
+
%a.show-common-elements{ href: "#changed_managed_files_both" }<
|
27
|
+
both
|
28
|
+
= ": #{safe_length(@diff["changed_managed_files"].common, :files)} files"
|
29
|
+
.row.scope_content.collapse.in
|
30
|
+
.row
|
31
|
+
.col-xs-1
|
32
|
+
.col-xs-5.table_container
|
33
|
+
- if safe_length(@diff["changed_managed_files"].only_in1, :files) > 0
|
34
|
+
= only_in_a
|
35
|
+
= render_partial "compare/changed_managed_file_list",
|
36
|
+
list: @diff["changed_managed_files"].only_in1
|
37
|
+
.col-xs-1
|
38
|
+
.col-xs-5.table_container
|
39
|
+
- if safe_length(@diff["changed_managed_files"].only_in2, :files) > 0
|
40
|
+
= only_in_b
|
41
|
+
= render_partial "compare/changed_managed_file_list",
|
42
|
+
list: @diff["changed_managed_files"].only_in2
|
43
|
+
- if safe_length(@diff["changed_managed_files"].common, :files) > 0
|
44
|
+
%a.both_anchor{ id: "changed_managed_files_both" }
|
45
|
+
.row
|
46
|
+
.col-xs-1
|
47
|
+
.col-xs-11
|
48
|
+
%a.show-common-elements{ href: "#changed_managed_files_both" }
|
49
|
+
Show common elements in changed-managed-files
|
50
|
+
%a.hide-common-elements{ href: "#", style: "display: none" }
|
51
|
+
Hide common elements in changed-managed-files
|
52
|
+
.row.scope_common_content.collapse
|
53
|
+
.col-xs-1
|
54
|
+
.col-xs-10.table_container
|
55
|
+
= in_both
|
56
|
+
= render_partial "compare/changed_managed_file_list",
|
57
|
+
list: @diff["changed_managed_files"].common
|
@@ -0,0 +1,26 @@
|
|
1
|
+
%p
|
2
|
+
<strong>Files extracted:</strong> #{list.extracted ? "yes" : "no"}
|
3
|
+
- if list.files
|
4
|
+
%table.table.table-striped.table-hover.table-condensed.files-table
|
5
|
+
%thead
|
6
|
+
%tr
|
7
|
+
%th Name
|
8
|
+
%th Package Name
|
9
|
+
%th Package Version
|
10
|
+
%th Changes
|
11
|
+
%th Mode
|
12
|
+
%th User
|
13
|
+
%th Group
|
14
|
+
%tbody
|
15
|
+
- list.files.each do |file|
|
16
|
+
%tr
|
17
|
+
%td= file.name
|
18
|
+
%td= file.package_name
|
19
|
+
%td= file.package_version
|
20
|
+
%td
|
21
|
+
= file.changes.join(",")
|
22
|
+
- if file.error_message
|
23
|
+
%span{ title: file.error_message } (details)
|
24
|
+
%td= file.mode
|
25
|
+
%td= file.user
|
26
|
+
%td= file.group
|
@@ -0,0 +1,54 @@
|
|
1
|
+
- if @diff["config_files"]
|
2
|
+
%a.scope_anchor{ id: "config_files" }
|
3
|
+
.scope#config_files_container
|
4
|
+
.row
|
5
|
+
.col-xs-1
|
6
|
+
%a{ href: "#groups" }
|
7
|
+
%img.over.scope_logo_big{ src: "/assets/logo-config-files.png",
|
8
|
+
"data-toggle" => "popover",
|
9
|
+
:title => "Config Files",
|
10
|
+
"data-content" => "#{scope_help("config_files")}" }
|
11
|
+
%span.toggle{ title: "Collapse/Expand" }
|
12
|
+
.col-xs-11
|
13
|
+
%h2
|
14
|
+
Config Files
|
15
|
+
.scope-summary
|
16
|
+
- if @diff["config_files"].only_in1
|
17
|
+
%span.summary-part
|
18
|
+
#{@description_a.name}:
|
19
|
+
#{safe_length(@diff["config_files"].only_in1, :files)} files
|
20
|
+
- if @diff["config_files"].only_in2
|
21
|
+
%span.summary-part
|
22
|
+
#{@description_b.name}:
|
23
|
+
#{safe_length(@diff["config_files"].only_in2, :files)} files
|
24
|
+
- if @diff["config_files"].common
|
25
|
+
%span.summary-part
|
26
|
+
%a.show-common-elements{ href: "#config_files_both" }<
|
27
|
+
both
|
28
|
+
= ": #{safe_length(@diff["config_files"].common, :files)} files"
|
29
|
+
.row.scope_content.collapse.in
|
30
|
+
.row
|
31
|
+
.col-xs-1
|
32
|
+
.col-xs-5.table_container
|
33
|
+
- if safe_length(@diff["config_files"].only_in1, :files) > 0
|
34
|
+
= only_in_a
|
35
|
+
= render_partial "compare/config_file_list", list: @diff["config_files"].only_in1
|
36
|
+
.col-xs-1
|
37
|
+
.col-xs-5.table_container
|
38
|
+
- if safe_length(@diff["config_files"].only_in2, :files) > 0
|
39
|
+
= only_in_b
|
40
|
+
= render_partial "compare/config_file_list", list: @diff["config_files"].only_in2
|
41
|
+
- if safe_length(@diff["config_files"].common, :files) > 0
|
42
|
+
%a.both_anchor{ id: "config_files_both" }
|
43
|
+
.row
|
44
|
+
.col-xs-1
|
45
|
+
.col-xs-11
|
46
|
+
%a.show-common-elements{ href: "#config_files_both" }
|
47
|
+
Show common elements in config-files
|
48
|
+
%a.hide-common-elements{ href: "#", style: "display: none" }
|
49
|
+
Hide common elements in config-files
|
50
|
+
.row.scope_common_content.collapse
|
51
|
+
.col-xs-1
|
52
|
+
.col-xs-10.table_container
|
53
|
+
= in_both
|
54
|
+
= render_partial "compare/config_file_list", list: @diff["config_files"].common
|
@@ -0,0 +1,52 @@
|
|
1
|
+
- if @diff["groups"]
|
2
|
+
%a.scope_anchor{ id: "groups" }
|
3
|
+
.scope#groups_container
|
4
|
+
.row
|
5
|
+
.col-xs-1
|
6
|
+
%a{ href: "#groups" }
|
7
|
+
%img.over.scope_logo_big{ :src => "/assets/logo-groups.png",
|
8
|
+
"data-toggle" => "popover",
|
9
|
+
:title => "Groups",
|
10
|
+
"data-content" => "#{scope_help("groups")}" }
|
11
|
+
%span.toggle{ title: "Collapse/Expand" }
|
12
|
+
.col-xs-11
|
13
|
+
%h2
|
14
|
+
Groups
|
15
|
+
.scope-summary
|
16
|
+
- if @diff["groups"].only_in1
|
17
|
+
%span.summary-part
|
18
|
+
#{@description_a.name}: #{@diff["groups"].only_in1.length} groups
|
19
|
+
- if @diff["groups"].only_in2
|
20
|
+
%span.summary-part
|
21
|
+
#{@description_b.name}: #{@diff["groups"].only_in2.length} groups
|
22
|
+
- if @diff["groups"].common
|
23
|
+
%span.summary-part
|
24
|
+
%a.show-common-elements{ href: "#groups_both" }<
|
25
|
+
both
|
26
|
+
= ": #{@diff["groups"].common.length} groups"
|
27
|
+
.row.scope_content.collapse.in
|
28
|
+
.row
|
29
|
+
.col-xs-1
|
30
|
+
.col-xs-5.table_container
|
31
|
+
- if @diff["groups"].only_in1
|
32
|
+
= only_in_a
|
33
|
+
= render_partial "compare/group_list", list: @diff["groups"].only_in1
|
34
|
+
.col-xs-1
|
35
|
+
.col-xs-5.table_container
|
36
|
+
- if @diff["groups"].only_in2
|
37
|
+
= only_in_b
|
38
|
+
= render_partial "compare/group_list", list: @diff["groups"].only_in2
|
39
|
+
- if @diff["groups"].common
|
40
|
+
%a.both_anchor{ id: "groups_both" }
|
41
|
+
.row
|
42
|
+
.col-xs-1
|
43
|
+
.col-xs-2
|
44
|
+
%a.show-common-elements{ href: "#groups_both" }
|
45
|
+
Show common elements in groups
|
46
|
+
%a.hide-common-elements{ href: "#", style: "display: none" }
|
47
|
+
Hide common elements in groups
|
48
|
+
.row.scope_common_content.collapse
|
49
|
+
.col-xs-1
|
50
|
+
.col-xs-10.table_container
|
51
|
+
= in_both
|
52
|
+
= render_partial "compare/group_list", list: @diff["groups"].common
|
@@ -0,0 +1,32 @@
|
|
1
|
+
- if @diff["os"]
|
2
|
+
%a.scope_anchor{ id: "os" }
|
3
|
+
.scope#os_container
|
4
|
+
.row
|
5
|
+
.col-xs-1
|
6
|
+
%a{ href: "#os" }
|
7
|
+
%img.over.scope_logo_big{ :src => "/assets/logo-os.png",
|
8
|
+
"data-toggle" => "popover",
|
9
|
+
:title => "Operating System",
|
10
|
+
"data-content" => "#{scope_help("os")}" }
|
11
|
+
%span.toggle{ title: "Collapse/Expand" }
|
12
|
+
.col-xs-11
|
13
|
+
%h2
|
14
|
+
Operating System
|
15
|
+
.row.scope_content.collapse.in
|
16
|
+
.row
|
17
|
+
.col-xs-1
|
18
|
+
.col-xs-5.table_container
|
19
|
+
- if @diff["os"].only_in1
|
20
|
+
= only_in_a
|
21
|
+
= render_partial "compare/os_table", os: @diff["os"].only_in1
|
22
|
+
.col-xs-1
|
23
|
+
.col-xs-5.table_container
|
24
|
+
- if @diff["os"].only_in2
|
25
|
+
= only_in_b
|
26
|
+
= render_partial "compare/os_table", os: @diff["os"].only_in2
|
27
|
+
- if @diff["os"].common
|
28
|
+
.row.scope_common_content
|
29
|
+
.col-xs-1
|
30
|
+
.col-xs-11.table_container.collapse.in
|
31
|
+
= in_both
|
32
|
+
= render_partial "compare/os_table", os: @diff["os"].common
|
@@ -0,0 +1,23 @@
|
|
1
|
+
%table.table.table-striped.table-hover.table-condensed
|
2
|
+
%thead
|
3
|
+
%tr
|
4
|
+
%th Name
|
5
|
+
%th.small Version
|
6
|
+
%th.small.visible-md.visible-lg Release
|
7
|
+
%th.small.visible-md.visible-lg Arch
|
8
|
+
%th.visible-lg Vendor
|
9
|
+
%th.visible-lg Checksum
|
10
|
+
%th.tiny.hidden-lg
|
11
|
+
%tbody
|
12
|
+
- list.each do |package|
|
13
|
+
%tr
|
14
|
+
%td= package.name
|
15
|
+
%td= package.version
|
16
|
+
%td.visible-md.visible-lg= package.release
|
17
|
+
%td.visible-md.visible-lg= package.arch
|
18
|
+
%td.visible-lg= package.vendor
|
19
|
+
%td.visible-lg= package.checksum
|
20
|
+
%td.hidden-lg{ title: "Name: #{package.name}\nVersion: #{package.version}\nRelease: " |
|
21
|
+
"#{package.release}\nArchitecture: #{package.arch}\nVendor: #{package.vendor}\n" |
|
22
|
+
"Checksum: #{package.checksum}" } ... |
|
23
|
+
|
@@ -0,0 +1,66 @@
|
|
1
|
+
- if @diff["packages"]
|
2
|
+
%a.scope_anchor{ id: "packages" }
|
3
|
+
.scope#packages_container
|
4
|
+
.row
|
5
|
+
.col-xs-1
|
6
|
+
%a{ href: "#packages" }
|
7
|
+
%img.over.scope_logo_big{ :src => "/assets/logo-packages.png",
|
8
|
+
"data-toggle" => "popover",
|
9
|
+
:title => "Packages",
|
10
|
+
"data-content" => "#{scope_help("packages")}" }
|
11
|
+
%span.toggle{ title: "Collapse/Expand" }
|
12
|
+
.col-xs-11
|
13
|
+
%h2
|
14
|
+
Packages
|
15
|
+
.scope-summary
|
16
|
+
- if @diff["packages"].only_in1
|
17
|
+
%span.summary-part
|
18
|
+
#{@description_a.name}: #{@diff["packages"].only_in1.length} packages
|
19
|
+
- if @diff["packages"].only_in2
|
20
|
+
%span.summary-part
|
21
|
+
#{@description_b.name}: #{@diff["packages"].only_in2.length} packages
|
22
|
+
- if @diff["packages"].changed
|
23
|
+
%span.summary-part
|
24
|
+
%a{ href: "#packages_changed" }
|
25
|
+
Changed
|
26
|
+
= ": #{@diff["packages"].changed.length} packages"
|
27
|
+
- if @diff["packages"].common
|
28
|
+
%span.summary-part
|
29
|
+
%a.show-common-elements{ href: "#packages_both" }<
|
30
|
+
both
|
31
|
+
= ": #{@diff["packages"].common.length} packages"
|
32
|
+
.row.scope_content.collapse.in
|
33
|
+
.row
|
34
|
+
.col-xs-1
|
35
|
+
.col-xs-5.table_container
|
36
|
+
- if @diff["packages"].only_in1
|
37
|
+
= only_in_a
|
38
|
+
= render_partial "compare/package_list", list: @diff["packages"].only_in1
|
39
|
+
.col-xs-1
|
40
|
+
.col-xs-5.table_container
|
41
|
+
- if @diff["packages"].only_in2
|
42
|
+
= only_in_b
|
43
|
+
= render_partial "compare/package_list", list: @diff["packages"].only_in2
|
44
|
+
- if @diff["packages"].changed
|
45
|
+
%a.both_anchor{ id: "packages_changed" }
|
46
|
+
.row
|
47
|
+
.col-xs-1
|
48
|
+
.col-xs-11.table_container
|
49
|
+
= changed
|
50
|
+
%ul.changed
|
51
|
+
- changed_packages.each do |change|
|
52
|
+
%li= change
|
53
|
+
- if @diff["packages"].common
|
54
|
+
%a.both_anchor{ id: "packages_both" }
|
55
|
+
.row
|
56
|
+
.col-xs-1
|
57
|
+
.col-xs-2
|
58
|
+
%a.show-common-elements{ href: "#packages_both" }
|
59
|
+
Show common elements in packages
|
60
|
+
%a.hide-common-elements{ href: "#", style: "display: none" }
|
61
|
+
Hide common elements in packages
|
62
|
+
.row.scope_common_content.collapse
|
63
|
+
.col-xs-1
|
64
|
+
.col-xs-10.table_container
|
65
|
+
= in_both
|
66
|
+
= render_partial "compare/package_list", list: @diff["packages"].common
|