Class: Specinfra::Command::Windows::Base::File
- Inherits:
-
Specinfra::Command::Windows::Base
- Object
- Specinfra::Command::Windows::Base
- Specinfra::Command::Windows::Base::File
- Defined in:
- lib/specinfra/command/windows/base/file.rb
Class Method Summary collapse
- .check_contains(file, pattern) ⇒ Object
- .check_contains_within(file, pattern, from = nil, to = nil) ⇒ Object
- .check_exists(file) ⇒ Object
- .check_has_version(name, version) ⇒ Object
- .check_is_accessible_by_user(file, user, access) ⇒ Object
- .check_is_directory(dir) ⇒ Object
- .check_is_executable(file, by_whom) ⇒ Object
- .check_is_file(file) ⇒ Object
- .check_is_hidden(file) ⇒ Object
- .check_is_owned_by(file, owner) ⇒ Object
- .check_is_readable(file, by_whom) ⇒ Object
- .check_is_readonly(file) ⇒ Object
- .check_is_system(file) ⇒ Object
- .check_is_writable(file, by_whom) ⇒ Object
- .get_content(file) ⇒ Object
- .get_md5sum(file) ⇒ Object
Methods inherited from Specinfra::Command::Windows::Base
Class Method Details
.check_contains(file, pattern) ⇒ Object
89 90 91 92 93 |
# File 'lib/specinfra/command/windows/base/file.rb', line 89 def check_contains(file, pattern) Backend::PowerShell::Command.new do exec %Q!(Get-Content("#{file}") | Out-String) -match '#{convert_regexp(pattern)}'! end end |
.check_contains_within(file, pattern, from = nil, to = nil) ⇒ Object
95 96 97 98 99 100 101 102 |
# File 'lib/specinfra/command/windows/base/file.rb', line 95 def check_contains_within file, pattern, from=nil, to=nil from ||= '^' to ||= '$' Backend::PowerShell::Command.new do using 'crop_text.ps1' exec %Q!(CropText -text (Get-Content("#{file}") | Out-String) -fromPattern '#{convert_regexp(from)}' -toPattern '#{convert_regexp(to)}') -match '#{pattern}'! end end |
.check_exists(file) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/specinfra/command/windows/base/file.rb', line 3 def check_exists(file) cmd = %Q!Test-Path -Path "#{file}"! Backend::PowerShell::Command.new do exec cmd end end |
.check_has_version(name, version) ⇒ Object
104 105 106 107 |
# File 'lib/specinfra/command/windows/base/file.rb', line 104 def check_has_version(name,version) cmd = "((Get-Command '#{name}').FileVersionInfo.ProductVersion -eq '#{version}') -or ((Get-Command '#{name}').FileVersionInfo.FileVersion -eq '#{version}')" Backend::PowerShell::Command.new { exec cmd } end |
.check_is_accessible_by_user(file, user, access) ⇒ Object
57 58 59 60 61 62 63 64 65 66 |
# File 'lib/specinfra/command/windows/base/file.rb', line 57 def check_is_accessible_by_user(file, user, access) case access when 'r' check_is_readable(file, user) when 'w' check_is_writable(file, user) when 'x' check_is_executable(file, user) end end |
.check_is_directory(dir) ⇒ Object
17 18 19 20 21 22 |
# File 'lib/specinfra/command/windows/base/file.rb', line 17 def check_is_directory(dir) cmd = item_has_attribute dir, 'Directory' Backend::PowerShell::Command.new do exec cmd end end |
.check_is_executable(file, by_whom) ⇒ Object
82 83 84 85 86 87 |
# File 'lib/specinfra/command/windows/base/file.rb', line 82 def check_is_executable(file, by_whom) Backend::PowerShell::Command.new do using 'check_file_access_rules.ps1' exec "CheckFileAccessRules -path '#{file}' -identity '#{get_identity by_whom}' -rules @('FullControl', 'Modify', 'ReadAndExecute', 'ExecuteFile')" end end |
.check_is_file(file) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/specinfra/command/windows/base/file.rb', line 10 def check_is_file(file) cmd = item_has_attribute file, 'Archive' Backend::PowerShell::Command.new do exec cmd end end |
.check_is_hidden(file) ⇒ Object
24 25 26 27 28 29 |
# File 'lib/specinfra/command/windows/base/file.rb', line 24 def check_is_hidden(file) cmd = item_has_attribute file, 'Hidden' Backend::PowerShell::Command.new do exec cmd end end |
.check_is_owned_by(file, owner) ⇒ Object
109 110 111 112 113 |
# File 'lib/specinfra/command/windows/base/file.rb', line 109 def check_is_owned_by(file, owner) Backend::PowerShell::Command.new do exec "$(if((Get-Item '#{file}').GetAccessControl().Owner -match '#{owner}' -or ((Get-Item '#{file}').GetAccessControl().Owner -match '#{owner}').Length -gt 0){ $TRUE } else { $FALSE })" end end |
.check_is_readable(file, by_whom) ⇒ Object
68 69 70 71 72 73 |
# File 'lib/specinfra/command/windows/base/file.rb', line 68 def check_is_readable(file, by_whom) Backend::PowerShell::Command.new do using 'check_file_access_rules.ps1' exec "CheckFileAccessRules -path '#{file}' -identity '#{get_identity by_whom}' -rules @('FullControl', 'Modify', 'ReadAndExecute', 'Read', 'ListDirectory')" end end |
.check_is_readonly(file) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/specinfra/command/windows/base/file.rb', line 31 def check_is_readonly(file) cmd = item_has_attribute file, 'ReadOnly' Backend::PowerShell::Command.new do exec cmd end end |
.check_is_system(file) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/specinfra/command/windows/base/file.rb', line 38 def check_is_system(file) cmd = item_has_attribute file, 'System' Backend::PowerShell::Command.new do exec cmd end end |
.check_is_writable(file, by_whom) ⇒ Object
75 76 77 78 79 80 |
# File 'lib/specinfra/command/windows/base/file.rb', line 75 def check_is_writable(file, by_whom) Backend::PowerShell::Command.new do using 'check_file_access_rules.ps1' exec "CheckFileAccessRules -path '#{file}' -identity '#{get_identity by_whom}' -rules @('FullControl', 'Modify', 'Write')" end end |
.get_content(file) ⇒ Object
45 46 47 |
# File 'lib/specinfra/command/windows/base/file.rb', line 45 def get_content(file) %Q!Get-Content("#{file}") | Write-Host! end |
.get_md5sum(file) ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/specinfra/command/windows/base/file.rb', line 49 def get_md5sum(file) <<-EOT $md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider $sum = [System.BitConverter]::ToString($md5.ComputeHash([System.IO.File]::ReadAllBytes("#{file}"))) echo $sum.ToLower().Replace("-","") EOT end |