dekernel 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: false, assume_yes: false, kernels_list: nil,
5
- all_except: nil, no_confirm: false }
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
 
@@ -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: all_kernels, installed: installed_kernels }
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
- sort_properly(kernels[:installed]).rotate(-number).drop(number)
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
- { y: $options[:assume_yes], s: $options[:dry_run] }.collect { |k, v|
99
- if v == true ; "-#{k}" ; end
100
- }.join(' ').strip
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
@@ -71,4 +71,3 @@ class Message
71
71
  end
72
72
  end
73
73
  end
74
-
@@ -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("y", "n", "y")
33
+ ARGF.stub!(:first).and_return("n", "y", "y")
33
34
 
34
- expect(Cernel.ask_which_to_remove.to_s).to match(/#{@remove_kernels.to_s}/)
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] = false
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] = false
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] = true
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] = true
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
- ["list", "remove"].each do |name|
106
- expect(Message).to respond_to("#{name}_command")
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
@@ -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: false, assume_yes: false, kernels_list: nil,
11
- all_except: nil, no_confirm: false }
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: @all_kernels, installed: @installed_kernels }
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.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.23
67
+ rubygems_version: 1.8.24
68
68
  signing_key:
69
69
  specification_version: 3
70
70
  summary: Remove old/unused kernel packages.