module Bovem::ShellMethods::Directories
Methods to interact with directories.
Public Instance Methods
Creates a list of directories, included missing parent directories.
@param directories [Array] The list of directories to create. @param mode [Fixnum] Initial permissions for the new directories. @param run [Boolean] If `false`, it will just print a list of directories that would be created. @param show_errors [Boolean] If show errors. @param fatal_errors [Boolean] If quit in case of fatal errors. @return [Boolean] `true` if operation succeeded, `false` otherwise.
# File lib/bovem/shell.rb, line 424 def create_directories(*directories, mode: 0755, run: true, show_errors: false, fatal_errors: true) rv = true # Adjust directory directories = directories.ensure_array(no_duplicates: true, compact: true, flatten: true) { |d| File.expand_path(d.ensure_string) } if !run # Just print dry_run_directory_creation(directories) else directories.each do |directory| rv &&= try_create_directory(directory, mode, fatal_errors, directories, show_errors) break unless rv end end rv end
Executes a block of code in another directory.
@param directory [String] The new working directory. @param restore [Boolean] If to restore the original working directory. @param show_messages [Boolean] Show informative messages about working directory changes. @return [Boolean] `true` if the directory was valid and the code executed, `false` otherwise.
# File lib/bovem/shell.rb, line 405 def within_directory(directory, restore: true, show_messages: false) directory = File.expand_path(directory.ensure_string) original = Dir.pwd rv = enter_directory(directory, show_messages, i18n.move_in(directory)) yield if rv && block_given? rv = enter_directory(original, show_messages, i18n.move_out(directory)) if rv && restore rv end