aruba-win-fix 0.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.gitignore +37 -0
- data/.rspec +3 -0
- data/.rubocop.yml +188 -0
- data/.simplecov +34 -0
- data/.travis.yml +47 -0
- data/.yardopts +8 -0
- data/CONTRIBUTING.md +71 -0
- data/Gemfile +83 -0
- data/History.md +579 -0
- data/LICENSE +20 -0
- data/README.md +226 -0
- data/Rakefile +49 -0
- data/TODO.md +13 -0
- data/appveyor.yml +32 -0
- data/aruba.gemspec +48 -0
- data/bin/aruba +7 -0
- data/config/.gitignore +1 -0
- data/cucumber.yml +26 -0
- data/features/.nav +72 -0
- data/features/api/command/find_command.feature +83 -0
- data/features/api/command/last_command_started.feature +50 -0
- data/features/api/command/last_command_stopped.feature +89 -0
- data/features/api/command/run.feature +414 -0
- data/features/api/command/run_simple.feature +242 -0
- data/features/api/command/send_signal.feature +53 -0
- data/features/api/command/stderr.feature +46 -0
- data/features/api/command/stdout.feature +46 -0
- data/features/api/command/stop.feature +131 -0
- data/features/api/command/stop_all_commands.feature +53 -0
- data/features/api/command/terminate_all_commands.feature +53 -0
- data/features/api/command/which.feature +37 -0
- data/features/api/core/expand_path.feature +88 -0
- data/features/api/environment/append_environment_variable.feature +128 -0
- data/features/api/environment/delete_environment_variable.feature +63 -0
- data/features/api/environment/prepend_environment_variable.feature +128 -0
- data/features/api/environment/set_environment_variable.feature +376 -0
- data/features/api/filesystem/cd.feature +184 -0
- data/features/api/filesystem/create_directory.feature +57 -0
- data/features/api/filesystem/disk_usage.feature +152 -0
- data/features/api/filesystem/does_exist.feature +62 -0
- data/features/api/filesystem/fixtures.feature +104 -0
- data/features/api/filesystem/is_absolute.feature +48 -0
- data/features/api/filesystem/is_directory.feature +53 -0
- data/features/api/filesystem/is_file.feature +54 -0
- data/features/api/filesystem/is_relative.feature +48 -0
- data/features/api/filesystem/move.feature +119 -0
- data/features/api/text/extract_text.feature +87 -0
- data/features/api/text/replace_variables.feature +45 -0
- data/features/api/text/sanitize_text.feature +228 -0
- data/features/api/text/unescape_text.feature +127 -0
- data/features/cli/console.feature +52 -0
- data/features/cli/init.feature +79 -0
- data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
- data/features/configuration/command_runtime_environment.feature +129 -0
- data/features/configuration/console_history_file.feature +38 -0
- data/features/configuration/exit_timeout.feature +52 -0
- data/features/configuration/fixtures_directories.feature +38 -0
- data/features/configuration/fixtures_path_prefix.feature +23 -0
- data/features/configuration/home_directory.feature +80 -0
- data/features/configuration/io_timeout.feature +30 -0
- data/features/configuration/keep_ansi.feature +30 -0
- data/features/configuration/log_level.feature +38 -0
- data/features/configuration/physical_block_size.feature +53 -0
- data/features/configuration/remove_ansi_escape_sequences.feature +38 -0
- data/features/configuration/root_directory.feature +30 -0
- data/features/configuration/startup_wait_time.feature +48 -0
- data/features/configuration/usage.feature +159 -0
- data/features/configuration/working_directory.feature +33 -0
- data/features/development/build.feature +15 -0
- data/features/development/test.feature +24 -0
- data/features/getting_started/cleanup.feature +67 -0
- data/features/getting_started/install.feature +8 -0
- data/features/getting_started/run_commands.feature +177 -0
- data/features/getting_started/supported_testing_frameworks.feature +104 -0
- data/features/getting_started/writing_good_feature_tests.feature +38 -0
- data/features/hooks/after/command.feature +44 -0
- data/features/hooks/before/command.feature +71 -0
- data/features/matchers/collection/include_an_object.feature +72 -0
- data/features/matchers/directory/have_sub_directory.feature +110 -0
- data/features/matchers/file/be_a_command_found_in_path.feature +115 -0
- data/features/matchers/file/be_existing_executable.feature +88 -0
- data/features/matchers/file/be_existing_file.feature +82 -0
- data/features/matchers/file/have_file_content.feature +123 -0
- data/features/matchers/file/have_file_size.feature +107 -0
- data/features/matchers/path/be_an_absolute_path.feature +74 -0
- data/features/matchers/path/be_an_existing_path.feature +97 -0
- data/features/matchers/path/have_permissions.feature +118 -0
- data/features/matchers/timeouts.feature +48 -0
- data/features/platforms/jruby.feature +14 -0
- data/features/rspec/integration.feature +179 -0
- data/features/step_definitions/aruba_dev_steps.rb +56 -0
- data/features/step_definitions/hooks.rb +96 -0
- data/features/steps/command/debug.feature +92 -0
- data/features/steps/command/exit_statuses.feature +136 -0
- data/features/steps/command/in_process.feature +485 -0
- data/features/steps/command/interactive.feature +90 -0
- data/features/steps/command/output.feature +588 -0
- data/features/steps/command/run.feature +66 -0
- data/features/steps/command/send_signal.feature +104 -0
- data/features/steps/command/shell.feature +155 -0
- data/features/steps/command/stderr.feature +68 -0
- data/features/steps/command/stdout.feature +109 -0
- data/features/steps/command/stop.feature +313 -0
- data/features/steps/core/announce.feature +283 -0
- data/features/steps/environment/append_environment_variable.feature +52 -0
- data/features/steps/environment/home_variable.feature +62 -0
- data/features/steps/environment/prepend_environment_variable.feature +52 -0
- data/features/steps/environment/set_environment_variable.feature +49 -0
- data/features/steps/filesystem/append_to_file.feature +45 -0
- data/features/steps/filesystem/cd_to_directory.feature +33 -0
- data/features/steps/filesystem/check_file_content.feature +61 -0
- data/features/steps/filesystem/check_permissions_of_file.feature +39 -0
- data/features/steps/filesystem/compare_files.feature +42 -0
- data/features/steps/filesystem/copy.feature +45 -0
- data/features/steps/filesystem/create_directory.feature +57 -0
- data/features/steps/filesystem/create_file.feature +76 -0
- data/features/steps/filesystem/existence_of_directory.feature +57 -0
- data/features/steps/filesystem/existence_of_file.feature +43 -0
- data/features/steps/filesystem/file_content.feature +86 -0
- data/features/steps/filesystem/fixtures.feature +64 -0
- data/features/steps/filesystem/move.feature +45 -0
- data/features/steps/filesystem/non_existence_of_directory.feature +69 -0
- data/features/steps/filesystem/non_existence_of_file.feature +80 -0
- data/features/steps/filesystem/overwrite_file.feature +72 -0
- data/features/steps/filesystem/remove_directory.feature +38 -0
- data/features/steps/filesystem/remove_file.feature +38 -0
- data/features/steps/filesystem/use_fixture.feature +77 -0
- data/features/steps/overview.feature +60 -0
- data/features/support/aruba.rb +7 -0
- data/features/support/env.rb +33 -0
- data/features/support/jruby.rb +5 -0
- data/features/support/simplecov_setup.rb +8 -0
- data/fixtures/cli-app/.gitignore +9 -0
- data/fixtures/cli-app/.rspec +2 -0
- data/fixtures/cli-app/README.md +39 -0
- data/fixtures/cli-app/Rakefile +1 -0
- data/fixtures/cli-app/bin/cli +6 -0
- data/fixtures/cli-app/cli-app.gemspec +26 -0
- data/fixtures/cli-app/features/support/env.rb +1 -0
- data/fixtures/cli-app/lib/cli/app.rb +13 -0
- data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
- data/fixtures/cli-app/lib/cli/app/version.rb +5 -0
- data/fixtures/cli-app/script/console +14 -0
- data/fixtures/cli-app/spec/spec_helper.rb +9 -0
- data/fixtures/cli-app/spec/support/aruba.rb +1 -0
- data/fixtures/copy/file.txt +1 -0
- data/fixtures/empty-app/.gitignore +9 -0
- data/fixtures/empty-app/.rspec +2 -0
- data/fixtures/empty-app/README.md +24 -0
- data/fixtures/empty-app/Rakefile +1 -0
- data/fixtures/empty-app/cli-app.gemspec +26 -0
- data/fixtures/empty-app/lib/cli/app.rb +13 -0
- data/fixtures/empty-app/lib/cli/app/version.rb +5 -0
- data/fixtures/getting-started-app/.gitignore +4 -0
- data/fixtures/getting-started-app/Gemfile +4 -0
- data/fixtures/getting-started-app/README.md +3 -0
- data/fixtures/getting-started-app/features/support/env.rb +1 -0
- data/fixtures/spawn_process/stderr.sh +3 -0
- data/lib/aruba.rb +1 -0
- data/lib/aruba/api.rb +34 -0
- data/lib/aruba/api/command.rb +307 -0
- data/lib/aruba/api/core.rb +191 -0
- data/lib/aruba/api/deprecated.rb +897 -0
- data/lib/aruba/api/environment.rb +89 -0
- data/lib/aruba/api/filesystem.rb +392 -0
- data/lib/aruba/api/rvm.rb +44 -0
- data/lib/aruba/api/text.rb +56 -0
- data/lib/aruba/aruba_path.rb +133 -0
- data/lib/aruba/basic_configuration.rb +240 -0
- data/lib/aruba/basic_configuration/option.rb +32 -0
- data/lib/aruba/cli.rb +26 -0
- data/lib/aruba/colorizer.rb +108 -0
- data/lib/aruba/command.rb +74 -0
- data/lib/aruba/config.rb +108 -0
- data/lib/aruba/config/jruby.rb +17 -0
- data/lib/aruba/config_wrapper.rb +58 -0
- data/lib/aruba/console.rb +70 -0
- data/lib/aruba/console/help.rb +35 -0
- data/lib/aruba/contracts/absolute_path.rb +20 -0
- data/lib/aruba/contracts/enum.rb +26 -0
- data/lib/aruba/contracts/is_power_of_two.rb +22 -0
- data/lib/aruba/contracts/relative_path.rb +20 -0
- data/lib/aruba/cucumber.rb +13 -0
- data/lib/aruba/cucumber/command.rb +422 -0
- data/lib/aruba/cucumber/core.rb +5 -0
- data/lib/aruba/cucumber/environment.rb +42 -0
- data/lib/aruba/cucumber/file.rb +201 -0
- data/lib/aruba/cucumber/hooks.rb +160 -0
- data/lib/aruba/cucumber/rvm.rb +3 -0
- data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
- data/lib/aruba/errors.rb +37 -0
- data/lib/aruba/event_bus.rb +59 -0
- data/lib/aruba/event_bus/name_resolver.rb +168 -0
- data/lib/aruba/events.rb +39 -0
- data/lib/aruba/extensions/string/strip.rb +25 -0
- data/lib/aruba/file_size.rb +63 -0
- data/lib/aruba/generators/script_file.rb +46 -0
- data/lib/aruba/hooks.rb +56 -0
- data/lib/aruba/in_config_wrapper.rb +24 -0
- data/lib/aruba/in_process.rb +14 -0
- data/lib/aruba/initializer.rb +222 -0
- data/lib/aruba/jruby.rb +4 -0
- data/lib/aruba/matchers/base/base_matcher.rb +96 -0
- data/lib/aruba/matchers/base/object_formatter.rb +114 -0
- data/lib/aruba/matchers/collection.rb +1 -0
- data/lib/aruba/matchers/collection/all.rb +11 -0
- data/lib/aruba/matchers/collection/include_an_object.rb +122 -0
- data/lib/aruba/matchers/command.rb +1 -0
- data/lib/aruba/matchers/command/be_successfully_executed.rb +34 -0
- data/lib/aruba/matchers/command/have_exit_status.rb +38 -0
- data/lib/aruba/matchers/command/have_finished_in_time.rb +37 -0
- data/lib/aruba/matchers/command/have_output.rb +36 -0
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +32 -0
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +32 -0
- data/lib/aruba/matchers/command/have_output_size.rb +28 -0
- data/lib/aruba/matchers/directory.rb +1 -0
- data/lib/aruba/matchers/directory/be_an_existing_directory.rb +38 -0
- data/lib/aruba/matchers/directory/have_sub_directory.rb +53 -0
- data/lib/aruba/matchers/environment.rb +1 -0
- data/lib/aruba/matchers/file.rb +1 -0
- data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +36 -0
- data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
- data/lib/aruba/matchers/file/be_an_existing_file.rb +38 -0
- data/lib/aruba/matchers/file/have_file_content.rb +62 -0
- data/lib/aruba/matchers/file/have_file_size.rb +47 -0
- data/lib/aruba/matchers/file/have_same_file_content.rb +48 -0
- data/lib/aruba/matchers/path.rb +1 -0
- data/lib/aruba/matchers/path/a_path_matching_pattern.rb +25 -0
- data/lib/aruba/matchers/path/be_an_absolute_path.rb +36 -0
- data/lib/aruba/matchers/path/be_an_existing_path.rb +37 -0
- data/lib/aruba/matchers/path/have_permissions.rb +64 -0
- data/lib/aruba/matchers/path/match_path_pattern.rb +41 -0
- data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +25 -0
- data/lib/aruba/matchers/string.rb +1 -0
- data/lib/aruba/matchers/string/include_output_string.rb +36 -0
- data/lib/aruba/matchers/string/match_output_string.rb +37 -0
- data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
- data/lib/aruba/platform.rb +25 -0
- data/lib/aruba/platforms/announcer.rb +232 -0
- data/lib/aruba/platforms/aruba_file_creator.rb +35 -0
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +35 -0
- data/lib/aruba/platforms/aruba_logger.rb +81 -0
- data/lib/aruba/platforms/command_monitor.rb +229 -0
- data/lib/aruba/platforms/determine_disk_usage.rb +28 -0
- data/lib/aruba/platforms/determine_file_size.rb +22 -0
- data/lib/aruba/platforms/disk_usage_calculator.rb +20 -0
- data/lib/aruba/platforms/filesystem_status.rb +68 -0
- data/lib/aruba/platforms/local_environment.rb +29 -0
- data/lib/aruba/platforms/simple_table.rb +54 -0
- data/lib/aruba/platforms/unix_command_string.rb +27 -0
- data/lib/aruba/platforms/unix_environment_variables.rb +220 -0
- data/lib/aruba/platforms/unix_platform.rb +276 -0
- data/lib/aruba/platforms/unix_which.rb +85 -0
- data/lib/aruba/platforms/windows_command_string.rb +31 -0
- data/lib/aruba/platforms/windows_environment_variables.rb +89 -0
- data/lib/aruba/platforms/windows_platform.rb +42 -0
- data/lib/aruba/platforms/windows_which.rb +106 -0
- data/lib/aruba/processes/basic_process.rb +143 -0
- data/lib/aruba/processes/debug_process.rb +69 -0
- data/lib/aruba/processes/in_process.rb +125 -0
- data/lib/aruba/processes/spawn_process.rb +278 -0
- data/lib/aruba/reporting.rb +126 -0
- data/lib/aruba/rspec.rb +107 -0
- data/lib/aruba/runtime.rb +96 -0
- data/lib/aruba/setup.rb +90 -0
- data/lib/aruba/spawn_process.rb +11 -0
- data/lib/aruba/version.rb +3 -0
- data/script/bootstrap +28 -0
- data/script/console +16 -0
- data/script/test +3 -0
- data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
- data/spec/aruba/api/environment/set_env_spec.rb +42 -0
- data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
- data/spec/aruba/api/runtime_spec.rb +28 -0
- data/spec/aruba/api_spec.rb +1209 -0
- data/spec/aruba/aruba_path_spec.rb +103 -0
- data/spec/aruba/basic_configuration_spec.rb +5 -0
- data/spec/aruba/configuration_spec.rb +5 -0
- data/spec/aruba/hooks_spec.rb +17 -0
- data/spec/aruba/in_config_wrapper_spec.rb +25 -0
- data/spec/aruba/jruby_spec.rb +55 -0
- data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
- data/spec/aruba/matchers/command_spec.rb +174 -0
- data/spec/aruba/matchers/directory_spec.rb +57 -0
- data/spec/aruba/matchers/file_spec.rb +127 -0
- data/spec/aruba/matchers/path_spec.rb +88 -0
- data/spec/aruba/platform/simple_table_spec.rb +23 -0
- data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
- data/spec/aruba/rspec_spec.rb +15 -0
- data/spec/aruba/runtime_spec.rb +29 -0
- data/spec/aruba/spawn_process_spec.rb +60 -0
- data/spec/event_bus/name_resolver_spec.rb +68 -0
- data/spec/event_bus_spec.rb +160 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/support/configs/.keep +0 -0
- data/spec/support/configs/aruba.rb +5 -0
- data/spec/support/configs/pry.rb +3 -0
- data/spec/support/configs/rspec.rb +15 -0
- data/spec/support/helpers/.keep +0 -0
- data/spec/support/helpers/reporting.rb +44 -0
- data/spec/support/matchers/.keep +0 -0
- data/spec/support/matchers/option.rb +35 -0
- data/spec/support/shared_contexts/.keep +0 -0
- data/spec/support/shared_contexts/aruba.rb +48 -0
- data/spec/support/shared_examples/.keep +0 -0
- data/spec/support/shared_examples/configuration.rb +116 -0
- data/spec/support/shared_examples/directory.rb +7 -0
- data/spec/support/shared_examples/file.rb +7 -0
- data/templates/css/console.css +24 -0
- data/templates/css/filesystem.css +42 -0
- data/templates/css/pygments-autumn.css +59 -0
- data/templates/files.erb +14 -0
- data/templates/images/LICENSE +22 -0
- data/templates/images/folder.png +0 -0
- data/templates/images/page_white.png +0 -0
- data/templates/images/page_white_gherkin.png +0 -0
- data/templates/images/page_white_ruby.png +0 -0
- data/templates/index.erb +20 -0
- data/templates/js/filesystem.js +5 -0
- data/templates/js/jquery-1.11.3.min.js +5 -0
- data/templates/main.erb +34 -0
- metadata +629 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
require 'aruba/platform'
|
|
2
|
+
|
|
3
|
+
# Aruba
|
|
4
|
+
module Aruba
|
|
5
|
+
# Api
|
|
6
|
+
module Api
|
|
7
|
+
# Environment methods of aruba
|
|
8
|
+
module Environment
|
|
9
|
+
# Set environment variable
|
|
10
|
+
#
|
|
11
|
+
# @param [String] name
|
|
12
|
+
# The name of the environment variable as string, e.g. 'HOME'
|
|
13
|
+
#
|
|
14
|
+
# @param [String] value
|
|
15
|
+
# The value of the environment variable. Needs to be a string.
|
|
16
|
+
def set_environment_variable(name, value)
|
|
17
|
+
name = name.to_s
|
|
18
|
+
value = value.to_s
|
|
19
|
+
|
|
20
|
+
old_environment = aruba.environment.to_h
|
|
21
|
+
aruba.environment[name] = value
|
|
22
|
+
new_environment = aruba.environment.to_h
|
|
23
|
+
|
|
24
|
+
aruba.event_bus.notify Events::AddedEnvironmentVariable.new(:old => old_environment, :new => new_environment, :changed => { :name => name, :value => value })
|
|
25
|
+
|
|
26
|
+
self
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Append environment variable
|
|
30
|
+
#
|
|
31
|
+
# @param [String] name
|
|
32
|
+
# The name of the environment variable as string, e.g. 'HOME'
|
|
33
|
+
#
|
|
34
|
+
# @param [String] value
|
|
35
|
+
# The value of the environment variable. Needs to be a string.
|
|
36
|
+
def append_environment_variable(name, value)
|
|
37
|
+
name = name.to_s
|
|
38
|
+
value = value.to_s
|
|
39
|
+
|
|
40
|
+
old_environment = aruba.environment.to_h
|
|
41
|
+
aruba.environment.append name, value
|
|
42
|
+
new_environment = aruba.environment.to_h
|
|
43
|
+
|
|
44
|
+
aruba.event_bus.notify Events::ChangedEnvironmentVariable.new(:old => old_environment, :new => new_environment, :changed => { :name => name, :value => value })
|
|
45
|
+
|
|
46
|
+
self
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Prepend environment variable
|
|
50
|
+
#
|
|
51
|
+
# @param [String] name
|
|
52
|
+
# The name of the environment variable as string, e.g. 'HOME'
|
|
53
|
+
#
|
|
54
|
+
# @param [String] value
|
|
55
|
+
# The value of the environment variable. Needs to be a string.
|
|
56
|
+
def prepend_environment_variable(name, value)
|
|
57
|
+
name = name.to_s
|
|
58
|
+
value = value.to_s
|
|
59
|
+
|
|
60
|
+
old_environment = aruba.environment.to_h
|
|
61
|
+
aruba.environment.prepend name, value
|
|
62
|
+
new_environment = aruba.environment.to_h
|
|
63
|
+
|
|
64
|
+
aruba.event_bus.notify Events::ChangedEnvironmentVariable.new(:old => old_environment, :new => new_environment, :changed => { :name => name, :value => value })
|
|
65
|
+
|
|
66
|
+
self
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Remove existing environment variable
|
|
70
|
+
#
|
|
71
|
+
# @param [String] key
|
|
72
|
+
# The name of the environment variable as string, e.g. 'HOME'
|
|
73
|
+
#
|
|
74
|
+
# @param [String] value
|
|
75
|
+
# The value of the environment variable. Needs to be a string.
|
|
76
|
+
def delete_environment_variable(name)
|
|
77
|
+
name = name.to_s
|
|
78
|
+
|
|
79
|
+
old_environment = aruba.environment.to_h
|
|
80
|
+
aruba.environment.delete name
|
|
81
|
+
new_environment = aruba.environment.to_h
|
|
82
|
+
|
|
83
|
+
aruba.event_bus.notify Events::DeletedEnvironmentVariable.new(:old => old_environment, :new => new_environment, :changed => { :name => name, :value => '' })
|
|
84
|
+
|
|
85
|
+
self
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
require 'aruba/platform'
|
|
2
|
+
|
|
3
|
+
require 'aruba/extensions/string/strip'
|
|
4
|
+
|
|
5
|
+
require 'aruba/aruba_path'
|
|
6
|
+
|
|
7
|
+
Aruba.platform.require_matching_files('../matchers/file/*.rb', __FILE__)
|
|
8
|
+
Aruba.platform.require_matching_files('../matchers/directory/*.rb', __FILE__)
|
|
9
|
+
Aruba.platform.require_matching_files('../matchers/path/*.rb', __FILE__)
|
|
10
|
+
|
|
11
|
+
# Aruba
|
|
12
|
+
module Aruba
|
|
13
|
+
# Api
|
|
14
|
+
module Api
|
|
15
|
+
# Filesystem methods
|
|
16
|
+
module Filesystem
|
|
17
|
+
# Check if file or directory exist
|
|
18
|
+
#
|
|
19
|
+
# @param [String] file_or_directory
|
|
20
|
+
# The file/directory which should exist
|
|
21
|
+
def exist?(file_or_directory)
|
|
22
|
+
Aruba.platform.exist? expand_path(file_or_directory)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Check if file exist and is file
|
|
26
|
+
#
|
|
27
|
+
# @param [String] file
|
|
28
|
+
# The file/directory which should exist
|
|
29
|
+
def file?(file)
|
|
30
|
+
Aruba.platform.file? expand_path(file)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Check if directory exist and is directory
|
|
34
|
+
#
|
|
35
|
+
# @param [String] file
|
|
36
|
+
# The file/directory which should exist
|
|
37
|
+
def directory?(file)
|
|
38
|
+
Aruba.platform.directory? expand_path(file)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Check if file exist and is executable
|
|
42
|
+
#
|
|
43
|
+
# @param [String] file
|
|
44
|
+
# The file which should exist
|
|
45
|
+
def executable?(path)
|
|
46
|
+
path = expand_path(path)
|
|
47
|
+
|
|
48
|
+
Aruba.platform.file?(path) && Aruba.platform.executable?(path)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Check if path is absolute
|
|
52
|
+
#
|
|
53
|
+
# @return [TrueClass, FalseClass]
|
|
54
|
+
# Result of check
|
|
55
|
+
def absolute?(path)
|
|
56
|
+
ArubaPath.new(path).absolute?
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Check if path is relative
|
|
60
|
+
#
|
|
61
|
+
# @return [TrueClass, FalseClass]
|
|
62
|
+
# Result of check
|
|
63
|
+
def relative?(path)
|
|
64
|
+
ArubaPath.new(path).relative?
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Return all existing paths (directories, files) in current dir
|
|
68
|
+
#
|
|
69
|
+
# @return [Array]
|
|
70
|
+
# List of files and directories
|
|
71
|
+
def all_paths
|
|
72
|
+
list('.').map { |p| expand_path(p) }
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Return all existing files in current directory
|
|
76
|
+
#
|
|
77
|
+
# @return [Array]
|
|
78
|
+
# List of files
|
|
79
|
+
def all_files
|
|
80
|
+
list('.').select { |p| file? p }.map { |p| expand_path(p) }
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Return all existing directories in current directory
|
|
84
|
+
#
|
|
85
|
+
# @return [Array]
|
|
86
|
+
# List of files
|
|
87
|
+
def all_directories
|
|
88
|
+
list('.').select { |p| directory? p }.map { |p| expand_path(p) }
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Create directory object
|
|
92
|
+
#
|
|
93
|
+
# @return [Dir]
|
|
94
|
+
# The directory object
|
|
95
|
+
def directory(path)
|
|
96
|
+
fail ArgumentError, %(Path "#{name}" does not exist.) unless exist? name
|
|
97
|
+
|
|
98
|
+
Dir.new(expand_path(path))
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# Return content of directory
|
|
102
|
+
#
|
|
103
|
+
# @return [Array]
|
|
104
|
+
# The content of directory
|
|
105
|
+
def list(name)
|
|
106
|
+
fail ArgumentError, %(Path "#{name}" does not exist.) unless exist? name
|
|
107
|
+
fail ArgumentError, %(Only directories are supported. Path "#{name}" is not a directory.) unless directory? name
|
|
108
|
+
|
|
109
|
+
existing_files = Dir.glob(expand_path(File.join(name, '**', '*')))
|
|
110
|
+
current_working_directory = ArubaPath.new(expand_path('.'))
|
|
111
|
+
|
|
112
|
+
existing_files.map { |d| ArubaPath.new(d).relative_path_from(current_working_directory).to_s }
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# Return content of file
|
|
116
|
+
#
|
|
117
|
+
# @return [Array]
|
|
118
|
+
# The content of file, without "\n" or "\r\n" at the end. To rebuild the file use `content.join("\n")`
|
|
119
|
+
def read(name)
|
|
120
|
+
fail ArgumentError, %(Path "#{name}" does not exist.) unless exist? name
|
|
121
|
+
fail ArgumentError, %(Only files are supported. Path "#{name}" is not a file.) unless file? name
|
|
122
|
+
|
|
123
|
+
File.readlines(expand_path(name)).map(&:chomp)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Create a file with given content
|
|
127
|
+
#
|
|
128
|
+
# The method does not check if file already exists. If the file name is a
|
|
129
|
+
# path the method will create all neccessary directories.
|
|
130
|
+
#
|
|
131
|
+
# @param [String] file_name
|
|
132
|
+
# The name of the file
|
|
133
|
+
#
|
|
134
|
+
# @param [String] file_content
|
|
135
|
+
# The content which should be written to the file
|
|
136
|
+
def write_file(name, content)
|
|
137
|
+
Aruba.platform.create_file(expand_path(name), content, false)
|
|
138
|
+
|
|
139
|
+
self
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# Create an empty file
|
|
143
|
+
#
|
|
144
|
+
# @param [String] file_name
|
|
145
|
+
# The name of the file
|
|
146
|
+
def touch(*args)
|
|
147
|
+
args = args.flatten
|
|
148
|
+
|
|
149
|
+
options = if args.last.kind_of? Hash
|
|
150
|
+
args.pop
|
|
151
|
+
else
|
|
152
|
+
{}
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
args.each { |p| create_directory(File.dirname(p)) }
|
|
156
|
+
|
|
157
|
+
Aruba.platform.touch(args.map { |p| expand_path(p) }, options)
|
|
158
|
+
|
|
159
|
+
self
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
# Copy a file and/or directory
|
|
163
|
+
#
|
|
164
|
+
# @param [String, Array] source
|
|
165
|
+
# A single file or directory, multiple files or directories or multiple
|
|
166
|
+
# files and directories. If multiple sources are given the destination
|
|
167
|
+
# needs to be a directory
|
|
168
|
+
#
|
|
169
|
+
# @param [String] destination
|
|
170
|
+
# A file or directory name. If multiple sources are given the destination
|
|
171
|
+
# needs to be a directory
|
|
172
|
+
#
|
|
173
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
|
174
|
+
# def copy(*source, destination)
|
|
175
|
+
def copy(*args)
|
|
176
|
+
args = args.flatten
|
|
177
|
+
destination = args.pop
|
|
178
|
+
source = args
|
|
179
|
+
|
|
180
|
+
source.each do |s|
|
|
181
|
+
raise ArgumentError, %(The following source "#{s}" does not exist.) unless exist? s
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
raise ArgumentError, "Using a fixture as destination (#{destination}) is not supported" if destination.start_with? aruba.config.fixtures_path_prefix
|
|
185
|
+
raise ArgumentError, "Multiples sources can only be copied to a directory" if source.count > 1 && exist?(destination) && !directory?(destination)
|
|
186
|
+
|
|
187
|
+
source_paths = source.map { |f| expand_path(f) }
|
|
188
|
+
destination_path = expand_path(destination)
|
|
189
|
+
|
|
190
|
+
if source_paths.count > 1
|
|
191
|
+
Aruba.platform.mkdir(destination_path)
|
|
192
|
+
else
|
|
193
|
+
Aruba.platform.mkdir(File.dirname(destination_path))
|
|
194
|
+
source_paths = source_paths.first
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
Aruba.platform.cp source_paths, destination_path
|
|
198
|
+
|
|
199
|
+
self
|
|
200
|
+
end
|
|
201
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
|
202
|
+
|
|
203
|
+
# Move a file and/or directory
|
|
204
|
+
#
|
|
205
|
+
# @param [String, Array] source
|
|
206
|
+
# A single file or directory, multiple files or directories or multiple
|
|
207
|
+
# files and directories. If multiple sources are given the destination
|
|
208
|
+
# needs to be a directory
|
|
209
|
+
#
|
|
210
|
+
# @param [String] destination
|
|
211
|
+
# A file or directory name. If multiple sources are given the destination
|
|
212
|
+
# needs to be a directory
|
|
213
|
+
#
|
|
214
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
|
215
|
+
# rubocop:disable Metrics/MethodLength
|
|
216
|
+
def move(*args)
|
|
217
|
+
args = args.flatten
|
|
218
|
+
destination = args.pop
|
|
219
|
+
source = args
|
|
220
|
+
|
|
221
|
+
source.each do |s|
|
|
222
|
+
raise ArgumentError, "Using a fixture as source (#{source}) is not supported" if s.start_with? aruba.config.fixtures_path_prefix
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
raise ArgumentError, "Using a fixture as destination (#{destination}) is not supported" if destination.start_with? aruba.config.fixtures_path_prefix
|
|
226
|
+
|
|
227
|
+
source.each do |s|
|
|
228
|
+
raise ArgumentError, %(The following source "#{s}" does not exist.) unless exist? s
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
raise ArgumentError, "Multiple sources can only be copied to a directory" if source.count > 1 && exist?(destination) && !directory?(destination)
|
|
232
|
+
|
|
233
|
+
source_paths = source.map { |f| expand_path(f) }
|
|
234
|
+
destination_path = expand_path(destination)
|
|
235
|
+
|
|
236
|
+
if source_paths.count > 1
|
|
237
|
+
Aruba.platform.mkdir(destination_path)
|
|
238
|
+
else
|
|
239
|
+
Aruba.platform.mkdir(File.dirname(destination_path))
|
|
240
|
+
source_paths = source_paths.first
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
Aruba.platform.mv source_paths, destination_path
|
|
244
|
+
|
|
245
|
+
self
|
|
246
|
+
end
|
|
247
|
+
# rubocop:enable Metrics/MethodLength
|
|
248
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
|
249
|
+
|
|
250
|
+
# Create a file with the given size
|
|
251
|
+
#
|
|
252
|
+
# The method does not check if file already exists. If the file name is a
|
|
253
|
+
# path the method will create all neccessary directories.
|
|
254
|
+
#
|
|
255
|
+
# @param [String] file_name
|
|
256
|
+
# The name of the file
|
|
257
|
+
#
|
|
258
|
+
# @param [Integer] file_size
|
|
259
|
+
# The size of the file
|
|
260
|
+
def write_fixed_size_file(name, size)
|
|
261
|
+
Aruba.platform.create_fixed_size_file(expand_path(name), size, false)
|
|
262
|
+
|
|
263
|
+
self
|
|
264
|
+
end
|
|
265
|
+
|
|
266
|
+
# Create a file with given content
|
|
267
|
+
#
|
|
268
|
+
# The method does check if file already exists and fails if the file is
|
|
269
|
+
# missing. If the file name is a path the method will create all neccessary
|
|
270
|
+
# directories.
|
|
271
|
+
def overwrite_file(name, content)
|
|
272
|
+
Aruba.platform.create_file(expand_path(name), content, true)
|
|
273
|
+
|
|
274
|
+
self
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
# Change file system permissions of file
|
|
278
|
+
#
|
|
279
|
+
# @param [Octal] mode
|
|
280
|
+
# File system mode, eg. 0755
|
|
281
|
+
#
|
|
282
|
+
# @param [String] file_name
|
|
283
|
+
# Name of file to be modified. This file needs to be present to succeed
|
|
284
|
+
def chmod(*args)
|
|
285
|
+
args = args.flatten
|
|
286
|
+
|
|
287
|
+
options = if args.last.kind_of? Hash
|
|
288
|
+
args.pop
|
|
289
|
+
else
|
|
290
|
+
{}
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
mode = args.shift
|
|
294
|
+
mode = if mode.kind_of? String
|
|
295
|
+
mode.to_i(8)
|
|
296
|
+
else
|
|
297
|
+
mode
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
args.each { |p| raise "Expected #{p} to be present" unless exist?(p) }
|
|
301
|
+
paths = args.map { |p| expand_path(p) }
|
|
302
|
+
|
|
303
|
+
Aruba.platform.chmod(mode, paths, options)
|
|
304
|
+
|
|
305
|
+
self
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
# Append data to file
|
|
309
|
+
#
|
|
310
|
+
# @param [String] file_name
|
|
311
|
+
# The name of the file to be used
|
|
312
|
+
#
|
|
313
|
+
# @param [String] file_content
|
|
314
|
+
# The content which should be appended to file
|
|
315
|
+
def append_to_file(file_name, file_content)
|
|
316
|
+
file_name = expand_path(file_name)
|
|
317
|
+
|
|
318
|
+
Aruba.platform.mkdir(File.dirname(file_name))
|
|
319
|
+
File.open(file_name, 'a') { |f| f << file_content }
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
# Create a directory in current directory
|
|
323
|
+
#
|
|
324
|
+
# @param [String] directory_name
|
|
325
|
+
# The name of the directory which should be created
|
|
326
|
+
def create_directory(directory_name)
|
|
327
|
+
Aruba.platform.mkdir expand_path(directory_name)
|
|
328
|
+
|
|
329
|
+
self
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
# Remove file or directory
|
|
333
|
+
#
|
|
334
|
+
# @param [Array, String] name
|
|
335
|
+
# The name of the file / directory which should be removed
|
|
336
|
+
def remove(*args)
|
|
337
|
+
args = args.flatten
|
|
338
|
+
|
|
339
|
+
options = if args.last.kind_of? Hash
|
|
340
|
+
args.pop
|
|
341
|
+
else
|
|
342
|
+
{}
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
args = args.map { |p| expand_path(p) }
|
|
346
|
+
|
|
347
|
+
Aruba.platform.rm(args, options)
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
# Read content of file and yield the content to block
|
|
351
|
+
#
|
|
352
|
+
# @param [String) file
|
|
353
|
+
# The name of file which should be read from
|
|
354
|
+
#
|
|
355
|
+
# @yield
|
|
356
|
+
# Pass the content of the given file to this block
|
|
357
|
+
def with_file_content(file, &block)
|
|
358
|
+
expect(file).to be_an_existing_path
|
|
359
|
+
|
|
360
|
+
content = read(file).join("\n")
|
|
361
|
+
|
|
362
|
+
yield(content)
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
# Calculate disk usage for file(s) and/or directories
|
|
366
|
+
#
|
|
367
|
+
# It shows the disk usage for a single file/directory. If multiple paths
|
|
368
|
+
# are given, it sum their size up.
|
|
369
|
+
#
|
|
370
|
+
# @param [Array, Path] paths
|
|
371
|
+
# The paths
|
|
372
|
+
#
|
|
373
|
+
# @result [FileSize]
|
|
374
|
+
# Bytes on disk
|
|
375
|
+
def disk_usage(*paths)
|
|
376
|
+
expect(paths.flatten).to Aruba::Matchers.all be_an_existing_path
|
|
377
|
+
|
|
378
|
+
Aruba.platform.determine_disk_usage paths.flatten.map { |p| ArubaPath.new(expand_path(p)) }, aruba.config.physical_block_size
|
|
379
|
+
end
|
|
380
|
+
|
|
381
|
+
# Get size of file
|
|
382
|
+
#
|
|
383
|
+
# @return [Numeric]
|
|
384
|
+
# The size of the file
|
|
385
|
+
def file_size(name)
|
|
386
|
+
expect(name).to be_an_existing_file
|
|
387
|
+
|
|
388
|
+
Aruba.platform.determine_file_size expand_path(name)
|
|
389
|
+
end
|
|
390
|
+
end
|
|
391
|
+
end
|
|
392
|
+
end
|