Module: Rigup::Utils::Run
- Included in:
- Cli, DeployBase, GitRepo
- Defined in:
- lib/rigup/utils/run.rb
Instance Method Summary collapse
- #bash ⇒ Object
- #cd(aPath, &block) ⇒ Object
- #pwd ⇒ Object
-
#run(aCommand, aOptions = nil) ⇒ Object
execute the given command in the bash session.
- #run_for_all(aCommand, aPath, aFilesOrDirs, aPattern = nil, aInvertPattern = false) ⇒ Object
-
#sudo(aCommand, aOptions = nil) ⇒ Object
execute the command using sudo.
-
#sudo?(aCommand, aOptions = nil) ⇒ Boolean
uses sudo if available, otherwise plain run.
-
#sudo_available? ⇒ Boolean
returns true if sudo is available for the current user, otherwise false.
-
#sudo_s ⇒ Object
for embedding into command line strings.
Instance Method Details
#bash ⇒ Object
5 6 7 |
# File 'lib/rigup/utils/run.rb', line 5 def bash @bash ||= ::Session::Bash.new end |
#cd(aPath, &block) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rigup/utils/run.rb', line 13 def cd(aPath,&block) if block_given? begin before_path = pwd cd(aPath) yield aPath,before_path rescue Exception => e logger.info e. ensure cd(before_path) end else aPath = ::File.(aPath) Dir.chdir(aPath) bash.execute("cd \"#{aPath}\"") end aPath end |
#pwd ⇒ Object
9 10 11 |
# File 'lib/rigup/utils/run.rb', line 9 def pwd bash.execute("pwd", {:stdout => nil}).first.strip end |
#run(aCommand, aOptions = nil) ⇒ Object
execute the given command in the bash session
33 34 35 36 37 38 39 40 41 |
# File 'lib/rigup/utils/run.rb', line 33 def run(aCommand,aOptions=nil) aOptions ||= {} logger.debug aCommand response,errout = bash.execute(aCommand,:stdout => STDOUT) # ::POpen4::shell(aCommand,aDir || @context.pwd) logger.debug errout if errout.to_nil logger.debug response if response.to_nil raise "Command Failed" unless bash.exit_status==0 or aOptions[:raise]==false return response end |
#run_for_all(aCommand, aPath, aFilesOrDirs, aPattern = nil, aInvertPattern = false) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/rigup/utils/run.rb', line 70 def run_for_all(aCommand,aPath,aFilesOrDirs,aPattern=nil,aInvertPattern=false) #run "#{sudo} find . -wholename '*/.svn' -prune -o -type d -print0 |xargs -0 #{sudo} chmod 750" #sudo find . -type f -exec echo {} \; cmd = [] cmd << sudo_s cmd << "find #{aPath.ensure_suffix('/')}" cmd << "-wholename '#{aPattern}'" if aPattern cmd << "-prune -o" if aInvertPattern cmd << case aFilesOrDirs.to_s[0,1] when 'f' then '-type f' when 'd' then '-type d' else '' end cmd << "-exec" cmd << aCommand cmd << "'{}' \\;" cmd = cmd.join(' ') run cmd end |
#sudo(aCommand, aOptions = nil) ⇒ Object
execute the command using sudo. Raises an exception if sudo is not available
51 52 53 54 |
# File 'lib/rigup/utils/run.rb', line 51 def sudo(aCommand,aOptions=nil) raise "sudo not available" unless sudo_available? run('sudo '+aCommand,aOptions) end |
#sudo?(aCommand, aOptions = nil) ⇒ Boolean
uses sudo if available, otherwise plain run
57 58 59 60 61 62 63 |
# File 'lib/rigup/utils/run.rb', line 57 def sudo?(aCommand,aOptions=nil) if sudo_available? sudo(aCommand,aOptions) else run(aCommand,aOptions) end end |
#sudo_available? ⇒ Boolean
returns true if sudo is available for the current user, otherwise false. Default = true
44 45 46 47 48 |
# File 'lib/rigup/utils/run.rb', line 44 def sudo_available? return !!config[:sudo_available] if config.has_key?(:sudo_available) return false if !config[:sudo].to_nil # false if old config item blank true end |
#sudo_s ⇒ Object
for embedding into command line strings
66 67 68 |
# File 'lib/rigup/utils/run.rb', line 66 def sudo_s sudo_available? ? 'sudo ' : '' end |