class RBT::RemovePrograms

Constants

NAMESPACE
#

NAMESPACE

#

Attributes

be_verbose[RW]

Public Class Methods

new( programs_dir = programs_directory?, optional_be_verbose = nil, clear_only_one_program = false ) click to toggle source
#

initialize

#
# File lib/rbt/utility_scripts/remove_programs.rb, line 28
def initialize(
    programs_dir           = programs_directory?,
    optional_be_verbose    = nil,
    clear_only_one_program = false
  )
  reset
  @be_verbose = optional_be_verbose if optional_be_verbose
  set_programs_dir(programs_dir)
  if clear_only_one_program
    register_to_delete_directory(clear_only_one_program)
  else # This here is the default.
    scan_programs_dir # Get all entries from /Programs dir.
    report_n_dirs     # Report how many we have inside.
    enter_each_dir    # This enters each dir.
  end
  unless @array_destroy_these_directories.empty?
    action_remove_registered_directories
  end
end

Public Instance Methods

action_remove_registered_directories() click to toggle source
#

action_remove_registered_directories

#
# File lib/rbt/utility_scripts/remove_programs.rb, line 119
def action_remove_registered_directories
  eimp 'Last but not least we will delete some dirs now:'
  @array_destroy_these_directories.each { |dir|
    if @be_verbose
      opnn; e '  Removing '+sdir(dir)
    end
    remove_directory(dir) unless dir == '/'
  }
end
enter_each_dir() click to toggle source
#

enter_each_dir

Process each dir, then we register which directory to remove.

#
# File lib/rbt/utility_scripts/remove_programs.rb, line 83
def enter_each_dir
  @directories_to_check.each { |the_dir|
    register_to_delete_directory(the_dir) if Dir.empty?(the_dir)
    change_directory(the_dir)
    efancy "Currently working on directory: #{sdir_return_pwd}"
    pointer_to_current = return_pwd+'Current'
    # Next, handle the Current symlinks.
    if File.symlink?(pointer_to_current) && !File.exist?(File.readlink(pointer_to_current)) 
      e '  Deleting '+sdir_return_pwd+sfancy('Current')
      remove_file pointer_to_current
      register_to_delete_directory(return_pwd) # register it
    end
    change_directory '..'
  }
end
register_to_delete_directory( i ) click to toggle source
#

register_to_delete_directory

While running enter_each_dir we also collect info which dirs are to be deleted. We will use this info later and remove these dirs.

#
# File lib/rbt/utility_scripts/remove_programs.rb, line 72
def register_to_delete_directory(
    i
  )
  @array_destroy_these_directories << i
end
report_n_dirs() click to toggle source
#

report_n_dirs

#
# File lib/rbt/utility_scripts/remove_programs.rb, line 102
def report_n_dirs
  opnn; e 'We have '+sfancy(@directories_to_check.size.to_s)+
          ' programs listed in '+sdir(@use_this_programs_dir)+'.'
end
reset() click to toggle source
#

reset

#
Calls superclass method RBT::Base#reset
# File lib/rbt/utility_scripts/remove_programs.rb, line 51
def reset # Reset tag.
  super()
  @namespace = NAMESPACE
  @array_destroy_these_directories = [] # these dirs will be removed
  @be_verbose = true
end
run() click to toggle source
#

run

#
# File lib/rbt/utility_scripts/remove_programs.rb, line 132
def run # run tag.
  action_remove_registered_directories
end
scan_programs_dir() click to toggle source
#

scan_programs_dir

This method retrieves all directoriess listed in our programs dir.

#
# File lib/rbt/utility_scripts/remove_programs.rb, line 112
def scan_programs_dir
  @directories_to_check = get_dir_listing(@use_this_programs_dir, true)
end
set_programs_dir(i) click to toggle source
#

set_programs_dir

#
# File lib/rbt/utility_scripts/remove_programs.rb, line 61
def set_programs_dir(i)
  i = programs_dir? if i == :def
  @use_this_programs_dir = i # default
end