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.
@@ -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.