dist_diff 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b76a51cdc235b3a1f539fe20b719a4690a469c31
4
+ data.tar.gz: ec226befc2f46b8ac21b513ba79b95d857eabef8
5
+ SHA512:
6
+ metadata.gz: 5a4b69498da35e9940af94230dda2e5b751c02cd4d3b11f97d5bc565b9cf12efb2f9e4b53a9789348a5558a10bd650fc8d78e860d975986fff9e20fcca3d8270
7
+ data.tar.gz: 9285677665c86079c2aefbb5b0b47de8faa27e109284034f912641ac4801cb50f33852b771751e1d0f6fef8dad6012f6f8ab5a055f709fdf12f199289ef454fc
@@ -0,0 +1,25 @@
1
+ # Reads a Ubuntu Iso manifest file and output the package names
2
+ class FileReader
3
+ attr_reader :manifest_file
4
+
5
+ def initialize(manifest_file)
6
+ @manifest_file = manifest_file
7
+ end
8
+
9
+ def package_names
10
+ file_content = readfile(manifest_file)
11
+ extract_package_names_into_array(file_content)
12
+ end
13
+
14
+ private
15
+
16
+ def readfile(filename)
17
+ File.open(filename, 'r') do |f|
18
+ f.read
19
+ end
20
+ end
21
+
22
+ def extract_package_names_into_array(file_content)
23
+ file_content.split(' ').select.with_index { |_, i| i.even? }
24
+ end
25
+ end
data/lib/dist_diff.rb ADDED
@@ -0,0 +1,43 @@
1
+ # For getting the difference in package names between two Ubuntu distribution
2
+ # using Ubuntu manifest file
3
+ class DistDiff
4
+ attr_reader :manifest_from, :manifest_to
5
+
6
+ def initialize(manifest_from, manifest_to)
7
+ @manifest_from = manifest_from
8
+ @manifest_to = manifest_to
9
+ end
10
+
11
+ def extra_packages
12
+ read_manifest_files
13
+ list_diff
14
+ end
15
+
16
+ def reverse_extra_packages
17
+ read_manifest_files if (to_pkgs and from_pkgs).nil?
18
+ list_diff(true)
19
+ end
20
+
21
+ private
22
+
23
+ attr_reader :to_pkgs, :from_pkgs
24
+
25
+ def list_diff(reverse = false)
26
+ unless reverse
27
+ to_pkgs - from_pkgs
28
+ else
29
+ from_pkgs - to_pkgs
30
+ end
31
+ end
32
+
33
+ def read_manifest_files
34
+ @from_pkgs = read_packages_of(manifest_from)
35
+ @to_pkgs = read_packages_of(manifest_to)
36
+ end
37
+
38
+ def read_packages_of(manifest_file)
39
+ FileReader.new(manifest_file).package_names
40
+ end
41
+ end
42
+
43
+ require 'dist_diff/file_reader'
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dist_diff
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Mohammad Anwar Shah
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-05-12 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A simple gem to extract the differences of package names between Ubuntu
14
+ derivatives so that it becomes easy to switch from one Ubuntu derivative to another
15
+ email: mohammadanwarshah@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/dist_diff.rb
21
+ - lib/dist_diff/file_reader.rb
22
+ homepage: http://rubygems.org/gems/dist_diff
23
+ licenses:
24
+ - MIT
25
+ metadata: {}
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ required_rubygems_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 2.4.8
43
+ signing_key:
44
+ specification_version: 4
45
+ summary: A gem for finding the packages need to be installed to switch Ubuntu derivatives
46
+ test_files: []