Module: Bovem::ShellMethods::Directories
- Included in:
- Bovem::Shell
- Defined in:
- lib/bovem/shell.rb
Overview
Methods to interact with directories.
Instance Method Summary collapse
-
#create_directories(*directories, mode: 0755, run: true, show_errors: false, fatal_errors: true) ⇒ Boolean
Creates a list of directories, included missing parent directories.
-
#within_directory(directory, restore: true, show_messages: false) ⇒ Boolean
Executes a block of code in another directory.
Instance Method Details
#create_directories(*directories, mode: 0755, run: true, show_errors: false, fatal_errors: true) ⇒ Boolean
Creates a list of directories, included missing parent directories.
424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 |
# 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.(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 |
#within_directory(directory, restore: true, show_messages: false) ⇒ Boolean
Executes a block of code in another directory.
405 406 407 408 409 410 411 412 413 414 |
# File 'lib/bovem/shell.rb', line 405 def within_directory(directory, restore: true, show_messages: false) directory = File.(directory.ensure_string) original = Dir.pwd rv = enter_directory(directory, , i18n.move_in(directory)) yield if rv && block_given? rv = enter_directory(original, , i18n.move_out(directory)) if rv && restore rv end |