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

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