dekernel 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|