Sha256: 1fb27fd6d89135eaa4fcb45057fde9b9d468b5582aa631c90ece64556fac9521

Contents?: true

Size: 941 Bytes

Versions: 28

Compression:

Stored size: 941 Bytes

Contents

module OhlohScm::Adapters
	require 'logger'
	class AbstractAdapter
		def self.logger
			@@logger ||= Logger.new(STDERR)
		end

		def self.logger=(val)
			@@logger = val
		end

		def logger
			self.class.logger
		end

		# Custom implementation of shell execution, does not block when the "pipe is full."
		# Raises an exception if the shell returns non-zero exit code.
		def self.run(cmd)
			logger.debug { cmd }
			status, out, err = Shellout.execute(cmd)
			raise RuntimeError.new("#{cmd} failed: #{out}\n#{err}") if status.exitstatus != 0
			out
		end

		def run(cmd)
			AbstractAdapter::run(cmd)
		end

		# As above, but does not raise an exception when an error occurs.
		# Returns three values: stdout, stderr, and process exit code
		def self.run_with_err(cmd)
			logger.debug { cmd }
			status, out, err = Shellout.new.run(cmd)
			[out, err, status]
		end

		def run_with_err(cmd)
			AbstractAdapter::run_with_err(cmd)
		end
	end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
ohloh_scm-2.4.6 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.4.5 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.4.4 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.4.3 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.4.1 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.4.0 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.3.5 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.3.4 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.3.2 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.3.1 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.3.0 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.2.13 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.2.12 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.2.11 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.2.10 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.2.9 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.2.8 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.2.7 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.2.6 lib/ohloh_scm/adapters/abstract/system.rb
ohloh_scm-2.2.5 lib/ohloh_scm/adapters/abstract/system.rb