module Pione module Command # PioneClean is a command for clearing temporary files created by PIONE # system. class PioneClean < BasicCommand # # basic informations # command_name "pione-clean" command_banner "Clean working directories and file cache directories." # # options # use_option :debug # # command lifecycle: setup phase # setup :package_database def setup_package_database @db = Package::Database.load end # # command lifecycle: execution phase # execute :remove_working_directory execute :remove_cache_directory execute :remove_ppg_cache execute :remove_directory_cache def execute_remove_working_directory FileUtils.remove_entry_secure(Global.working_directory_root) end def execute_remove_cache_directory FileUtils.remove_entry_secure(Global.file_cache_directory_root) end def execute_remove_ppg_cache Global.ppg_package_cache_directory.each_entry do |entry| unless @db.has_digest?(Package::PackageFilename.parse(entry.basename).digest) entry.delete end end end def execute_remove_directory_cache Global.directory_package_cache_directory.each_entry do |entry| unless @db.has_digest?(entry.basename) entry.delete end end end end end end