Class: Cernel

Inherits:
Object
  • Object
show all
Defined in:
lib/dekernel/cernel.rb

Class Method Summary collapse

Class Method Details

.ask_which_to_removeObject



9
10
11
12
13
14
# File 'lib/dekernel/cernel.rb', line 9

def ask_which_to_remove
  installed_kernels = find_kernels[:installed]
  $stdout.puts Message.installed_kernels(installed_kernels)
  Kernel.exit if installed_kernels.length == 0
  kernels_to_remove = create_kernels_to_remove_list(installed_kernels)
end

.find_all_except_latest(number) ⇒ Object



33
34
35
36
37
# File 'lib/dekernel/cernel.rb', line 33

def find_all_except_latest(number)
  kernels = find_kernels
  installed_kernels = kernels[:installed]
  sort_properly(installed_kernels).take(installed_kernels.length - number)
end

.find_kernelsObject



3
4
5
6
7
# File 'lib/dekernel/cernel.rb', line 3

def find_kernels
  all_kernels = find_all_kernels
  installed_kernels = find_installed_kernels(all_kernels)
  { :all => all_kernels, :installed => installed_kernels }
end

.get_free_disk_spaceObject



29
30
31
# File 'lib/dekernel/cernel.rb', line 29

def get_free_disk_space
  Kernel.send(:`, "df -BM /boot").split[10].to_i
end

.purge_packages_from_a_list_of_kernels(kernels_to_remove) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/dekernel/cernel.rb', line 16

def purge_packages_from_a_list_of_kernels(kernels_to_remove)
  ($stderr.puts "\n" + "No kernels selected!" ; Kernel.exit) unless kernels_to_remove.length > 0
  confirm_removals(kernels_to_remove) unless $options[:no_confirm]
  packages_list = find_kernel_packages(kernels_to_remove)
  IO.send(:popen, "sudo apt-get purge #{apt_options} #{packages_list.join("\s")} 1>&2") { |p| p.each { |f| $stdout.puts f } }
  if $?.exitstatus != 0
    $stdout.puts Message.purge_packages_failure($?)
  else
    $stdout.puts Message.purge_packages_success(kernels_to_remove)
    Kernel.system "sudo apt-get clean" unless $options[:dry_run]
  end
end

.safe_ified_kernels_listObject



39
40
41
42
43
# File 'lib/dekernel/cernel.rb', line 39

def safe_ified_kernels_list
  options = $options[:kernels_list].split(" ").reject { |kernel| kernel =~ (/[a-z]/i) }
  options = options.reject { |kernel| kernel =~ (/[0-9]{3,}/i) }
  options.select { |kernel| kernel =~ kernel_regex }
end