class RBT::RemovePrograms

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/remove_programs.rb, line 24
def initialize(
    programs_dir           = programs_directory?,
    optional_be_verbose    = nil,
    clear_only_one_program = false
  )
  reset
  if optional_be_verbose
    set_be_verbose(optional_be_verbose)
  end
  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

This method will delete the designated directories.

#
# File lib/rbt/utility_scripts/remove_programs/remove_programs.rb, line 129
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?
      opne "  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/remove_programs.rb, line 89
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 here.
    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/remove_programs.rb, line 76
def register_to_delete_directory(
    i
  )
  unless @array_destroy_these_directories.include? i
    @array_destroy_these_directories << i
  end
end
report_n_dirs() click to toggle source
#

report_n_dirs

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

reset (reset tag)

#
Calls superclass method RBT::LeanPrototype#reset
# File lib/rbt/utility_scripts/remove_programs/remove_programs.rb, line 49
def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @array_destroy_these_directories
  # ======================================================================= #
  @array_destroy_these_directories = [] # These directories will be removed
  # ======================================================================= #
  # === :be_verbose
  # ======================================================================= #
  set_be_verbose
end
run() click to toggle source
#

run (run tag)

#
# File lib/rbt/utility_scripts/remove_programs/remove_programs.rb, line 142
def run
  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/remove_programs.rb, line 120
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/remove_programs.rb, line 65
def set_programs_dir(i)
  i = programs_dir? if i == :def
  @use_this_programs_dir = i # default
end