Module: Pot::Verifiers::Executable
- Defined in:
- lib/pot/verifiers/executable.rb
Overview
Executable Verifier
Contains a verifier to check the existance of an executable script on your server.
Example Usage
First, absolute path to an executable:
verify { has_executable '/usr/special/secret/bin/scipt' }
Second, a global executable which would be available anywhere on the command line:
verify { has_executable 'grep' }
Instance Method Summary collapse
-
#has_executable(path) ⇒ Object
Checks if
path
is an executable script. -
#has_executable_with_version(path, version, get_version = '-v') ⇒ Object
Same as has_executable but with checking for e certain version number.
-
#has_version_in_grep(cmd, version) ⇒ Object
Same as has_executable but checking output of a certain command with grep.
Instance Method Details
#has_executable(path) ⇒ Object
Checks if path
is an executable script. This verifier is “smart” because if the path contains a forward slash ‘/’ then it assumes you’re checking an absolute path to an executable. If no ‘/’ is in the path, it assumes you’re checking for a global executable that would be available anywhere on the command line.
25 26 27 28 29 30 31 32 33 |
# File 'lib/pot/verifiers/executable.rb', line 25 def has_executable(path) # Be smart: If the path includes a forward slash, we're checking # an absolute path. Otherwise, we're checking a global executable if path.include?('/') @commands << "test -x #{path}" else @commands << "which -s #{path}" end end |
#has_executable_with_version(path, version, get_version = '-v') ⇒ Object
Same as has_executable but with checking for e certain version number. Last option is the parameter to append for getting the version (which defaults to “-v”).
38 39 40 41 42 43 44 |
# File 'lib/pot/verifiers/executable.rb', line 38 def has_executable_with_version(path, version, get_version = '-v') if path.include?('/') @commands << "[ -x #{path} -a -n \"`#{path} #{get_version} 2>&1 | egrep -e \\\"#{version}\\\"`\" ]" else @commands << "[ -n \"`echo \\`which #{path}\\``\" -a -n \"`\\`which #{path}\\` #{get_version} 2>&1 | egrep -e \\\"#{version}\\\"`\" ]" end end |
#has_version_in_grep(cmd, version) ⇒ Object
Same as has_executable but checking output of a certain command with grep.
48 49 50 |
# File 'lib/pot/verifiers/executable.rb', line 48 def has_version_in_grep(cmd, version) @commands << "[ -n \"`#{cmd} 2> /dev/null | egrep -e \\\"#{version}\\\"`\" ]" end |