dekernel 0.0.0 → 0.0.1
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.
- data/bin/dekernel +8 -2
- data/lib/dekernel/cernel.rb +9 -5
- data/lib/dekernel/message.rb +0 -1
- data/spec/lib/dekernel/cernel_spec.rb +8 -7
- data/spec/lib/dekernel/message_spec.rb +3 -2
- data/spec/spec_helper.rb +3 -3
- metadata +2 -2
data/bin/dekernel
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
lib_dir = "#{File.expand_path(File.dirname(__FILE__))}/../lib"
|
4
|
+
$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
|
5
|
+
lib_dekernel_dir = "#{File.expand_path(File.dirname(__FILE__))}/../lib/dekernel"
|
6
|
+
$LOAD_PATH.unshift(lib_dekernel_dir) unless $LOAD_PATH.include?(lib_dekernel_dir)
|
7
|
+
puts $LOAD_PATH
|
8
|
+
|
3
9
|
require 'optparse'
|
4
|
-
$options = { dry_run
|
5
|
-
all_except
|
10
|
+
$options = { :dry_run => false, :assume_yes => false, :kernels_list => nil,
|
11
|
+
:all_except => nil, :no_confirm => false }
|
6
12
|
OptionParser.new { |opts|
|
7
13
|
opts.banner = "Usage: ./deKernelScript [--dry-run, --assume-yes, --kernels-list=[space separated kernel #'s]"
|
8
14
|
|
data/lib/dekernel/cernel.rb
CHANGED
@@ -3,7 +3,7 @@ class Cernel
|
|
3
3
|
def find_kernels
|
4
4
|
all_kernels = find_all_kernels
|
5
5
|
installed_kernels = find_installed_kernels(all_kernels)
|
6
|
-
{ all
|
6
|
+
{ :all => all_kernels, :installed => installed_kernels }
|
7
7
|
end
|
8
8
|
|
9
9
|
def ask_which_to_remove
|
@@ -32,7 +32,8 @@ class Cernel
|
|
32
32
|
|
33
33
|
def find_all_except_latest(number)
|
34
34
|
kernels = find_kernels
|
35
|
-
|
35
|
+
installed_kernels = kernels[:installed]
|
36
|
+
sort_properly(installed_kernels).take(installed_kernels.length - number)
|
36
37
|
end
|
37
38
|
|
38
39
|
def safe_ified_kernels_list
|
@@ -62,6 +63,7 @@ class Cernel
|
|
62
63
|
def create_kernels_to_remove_list(installed_kernels)
|
63
64
|
installed_kernels.select { |kernel|
|
64
65
|
$stdout.print "Do you want to remove the #{kernel} kernel [y/N/yes/NO/?]"
|
66
|
+
Signal.trap("SIGINT") { $stdout.puts "\nCaught exit signal, exiting!" ; Kernel.exit }
|
65
67
|
next unless !!ARGF.first.strip.match(/^y$|^yes$/i)
|
66
68
|
$stdout.puts "Marking #{kernel} for removal" ; true
|
67
69
|
}
|
@@ -82,6 +84,7 @@ class Cernel
|
|
82
84
|
all_kernels = find_kernels
|
83
85
|
installed_kernels = all_kernels[:installed]
|
84
86
|
Kernel.system "clear"
|
87
|
+
Signal.trap("SIGINT") { $stdout.puts "\nCaught exit signal, exiting!" ; Kernel.exit }
|
85
88
|
$stdout.puts Message.ask_to_confirm_kernels_to_remove(kernels_to_remove, installed_kernels)
|
86
89
|
($stderr.puts "Canceled!" ; Kernel.exit) unless !!ARGF.first.strip.match(/^y$|^yes$/i)
|
87
90
|
kernels_to_remove
|
@@ -95,9 +98,10 @@ class Cernel
|
|
95
98
|
end
|
96
99
|
|
97
100
|
def apt_options
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
+
options = Array.new
|
102
|
+
if $options[:assume_yes] ; options << "-y" ; end
|
103
|
+
if $options[:dry_run] ; options << "-s" ; end
|
104
|
+
options.join(" ").strip
|
101
105
|
end
|
102
106
|
end
|
103
107
|
end
|
data/lib/dekernel/message.rb
CHANGED
@@ -7,6 +7,7 @@ describe 'Cernel' do
|
|
7
7
|
$stderr.stub!(:puts)
|
8
8
|
Kernel.stub!(:system)
|
9
9
|
end
|
10
|
+
|
10
11
|
context "#find_kernels" do
|
11
12
|
it "finds all kernels" do
|
12
13
|
Cernel.stub!(:find_all_kernels).and_return(@all_kernels)
|
@@ -23,15 +24,15 @@ describe 'Cernel' do
|
|
23
24
|
|
24
25
|
context "#ask_which_to_remove" do
|
25
26
|
it "raises SystemExit if installed_kernels.length == 0" do
|
26
|
-
Cernel.stub!(:find_kernels).and_return({ installed
|
27
|
+
Cernel.stub!(:find_kernels).and_return({ :installed => [] })
|
27
28
|
expect(lambda { Cernel.ask_which_to_remove }).to raise_error SystemExit
|
28
29
|
end
|
29
30
|
|
30
31
|
it "prints each one and adds to list" do
|
31
32
|
Cernel.stub!(:find_installed_kernels).and_return(@installed_kernels)
|
32
|
-
ARGF.stub!(:first).and_return("
|
33
|
+
ARGF.stub!(:first).and_return("n", "y", "y")
|
33
34
|
|
34
|
-
expect(Cernel.ask_which_to_remove
|
35
|
+
expect(Cernel.ask_which_to_remove).to eq @remove_kernels
|
35
36
|
end
|
36
37
|
|
37
38
|
it "calls 'Message.installed_kernels(installed_kernels)'" do
|
@@ -256,19 +257,19 @@ describe 'Cernel' do
|
|
256
257
|
context "#apt_options" do
|
257
258
|
it "returns a string of the options" do
|
258
259
|
$options[:assume_yes] = false
|
259
|
-
$options[:dry_run]
|
260
|
+
$options[:dry_run] = false
|
260
261
|
expect(Cernel.send(:apt_options)).to eq ""
|
261
262
|
|
262
263
|
$options[:assume_yes] = true
|
263
|
-
$options[:dry_run]
|
264
|
+
$options[:dry_run] = false
|
264
265
|
expect(Cernel.send(:apt_options)).to eq "-y"
|
265
266
|
|
266
267
|
$options[:assume_yes] = false
|
267
|
-
$options[:dry_run]
|
268
|
+
$options[:dry_run] = true
|
268
269
|
expect(Cernel.send(:apt_options)).to eq "-s"
|
269
270
|
|
270
271
|
$options[:assume_yes] = true
|
271
|
-
$options[:dry_run]
|
272
|
+
$options[:dry_run] = true
|
272
273
|
expect(Cernel.send(:apt_options)).to eq "-y -s"
|
273
274
|
end
|
274
275
|
end
|
@@ -102,8 +102,9 @@ describe 'Message' do
|
|
102
102
|
end
|
103
103
|
|
104
104
|
it "responds to list_command and remove_command methods" do
|
105
|
-
|
106
|
-
expect(Message
|
105
|
+
{ "list" => "ls -ahl", "remove" => "rm -f " }.each do |name, command|
|
106
|
+
expect(Message.send("#{name}_command", @other_kernels)).
|
107
|
+
to eq "### `sudo #{command} /boot/*-#{@other_kernels.first}*`"
|
107
108
|
end
|
108
109
|
end
|
109
110
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -7,13 +7,13 @@ require 'dekernel/message'
|
|
7
7
|
|
8
8
|
RSpec.configure do |c|
|
9
9
|
c.before :all do
|
10
|
-
$options = { dry_run
|
11
|
-
all_except
|
10
|
+
$options = { :dry_run => false, :assume_yes => false, :kernels_list => nil,
|
11
|
+
:all_except => nil, :no_confirm => false }
|
12
12
|
|
13
13
|
@all_kernels = ["2.3.56-1", "2.4.28-11", "3.2.0-11", "3.2.0-8"]
|
14
14
|
@installed_kernels = @all_kernels.drop(1)
|
15
15
|
@all_except_latest_one = @installed_kernels - ["3.2.0-11"]
|
16
|
-
@kernels_hash = { all
|
16
|
+
@kernels_hash = { :all => @all_kernels, :installed => @installed_kernels }
|
17
17
|
@other_kernels = @all_kernels - @installed_kernels
|
18
18
|
@remove_kernels = @installed_kernels.drop(1)
|
19
19
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dekernel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
64
|
version: '0'
|
65
65
|
requirements: []
|
66
66
|
rubyforge_project:
|
67
|
-
rubygems_version: 1.8.
|
67
|
+
rubygems_version: 1.8.24
|
68
68
|
signing_key:
|
69
69
|
specification_version: 3
|
70
70
|
summary: Remove old/unused kernel packages.
|