Sha256: b6faf1ae572b105b5af41fa3cd24631fad213938fd3cef84aeb14490f79be679
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
# frozen_string_literal: true module ConvenientService module Examples module Standard class Gemfile module Services class RunShellCommand include ConvenientService::Standard::Config attr_reader :command, :debug step :validate_command, in: :command step Services::PrintShellCommand, in: [:command, {skip: -> { !debug }}], fallback: true step :result, in: :command def initialize(command:, debug: false) @command = command @debug = debug end def result ## # NOTE: When the command exit code is 0, `system` return `true`, and `false` otherwise. # - https://ruby-doc.org/core-3.1.2/Kernel.html#method-i-system # - https://stackoverflow.com/a/37329716/12201472 # if system(command) success else error(message: "#{command} returned non-zero exit code") end end private def validate_command return failure(command: "Command is `nil`") if command.nil? return failure(command: "Command is empty") if command.empty? success end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
convenient_service-0.13.0 | lib/convenient_service/examples/standard/gemfile/services/run_shell_command.rb |