Method: FileGenerator::FileGenerator#run

Defined in:
lib/file_utils/file_generator/file_generator.rb

#runObject

Generates files with random content with random file size according to the given Params



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/file_utils/file_generator/file_generator.rb', line 125

def run
  dir_counter = 0
  total_file_count = 0
  if Params['is_clear_target_path']
    target_path_all_regexp = File.expand_path(File.join(Params['target_path'], '*'))
    Dir[target_path_all_regexp].each {|file| FileUtils.rm_rf file}
  end
  while is_generate_dir dir_counter, total_file_count
    new_dir_name = File.expand_path(File.join Params['target_path'], get_new_directory_name)
    ::FileUtils.mkdir_p new_dir_name unless File.directory?(new_dir_name)
    dir_counter += 1
    file_counter = 0

    while is_generate_file file_counter, total_file_count
      new_file_name = get_new_file_name
      File.open(File.join(new_dir_name, new_file_name), "w") do |f|
        get_file_bytes_size.to_i.times { f.write(get_random_letter) }
      end
      file_counter += 1
      total_file_count += 1

      sleep Params['sleep_time_in_seconds'] if Params['sleep_time_in_seconds'] > 0
    end
  end
end