Class: TinyCI::Compactor
- Inherits:
-
Object
- Object
- TinyCI::Compactor
- Includes:
- GitUtils, Subprocesses
- Defined in:
- lib/tinyci/compactor.rb
Overview
Tool for compressing old builds into .tar.gz files
Constant Summary collapse
- BLOCKSIZE_TO_READ =
1024 * 1000
Instance Method Summary collapse
-
#compact! ⇒ Object
Compress and delete the build directories.
-
#initialize(working_dir: nil, num_builds_to_leave: nil, builds_to_leave: nil, logger: nil) ⇒ Compactor
constructor
Constructor.
Methods included from Subprocesses
#execute, #execute_pipe, #execute_stream
Methods included from GitUtils
#git_cmd, #git_directory_path, #inside_bare_repo?, #inside_git_directory?, #inside_repository?, #inside_work_tree?, #repo_root
Constructor Details
#initialize(working_dir: nil, num_builds_to_leave: nil, builds_to_leave: nil, logger: nil) ⇒ Compactor
Constructor
22 23 24 25 26 27 |
# File 'lib/tinyci/compactor.rb', line 22 def initialize(working_dir: nil, num_builds_to_leave: nil, builds_to_leave: nil, logger: nil) @logger = logger @working_dir = working_dir || repo_root @num_builds_to_leave = (num_builds_to_leave || 1).to_i @builds_to_leave = builds_to_leave || [] end |
Instance Method Details
#compact! ⇒ Object
Compress and delete the build directories
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/tinyci/compactor.rb', line 30 def compact! unless inside_repository? log_error "not currently in a git repository" return false end directories_to_compact.each do |dir| compress_directory dir FileUtils.rm_rf builds_dir(dir) log_info "Compacted #{archive_path(dir)}" end end |