def run_action(msg)
      ui.info("#{msg}... ", :nonewline)
      begin
        result = yield
        ui.puts ui.color("complete!", :green, :bold)
        result
      rescue => e
        ui.puts ui.color("error!", :red, :bold)
        ui.error "Reason - #{e}"
        raise
      end
    end
def run_action(msg)
      ui.info("#{msg}... ", :nonewline)
      begin
        result = yield
        ui.puts ui.color("complete!", :green, :bold)
        result
      rescue => e
        ui.puts ui.color("error!", :red, :bold)
        ui.error "Reason - #{e}"
        raise
      end
    end
Create a new callback instance

 @param ui [Bogo::Ui]
 @param config [Smash] configuration hash
 @param arguments [Array<String>] arguments from the CLI
 @param api [Provider] API connection

 @return [self]
 Wrap action within status text

 @param msg [String] action text
 @yieldblock action to perform
 @return [Object] result of yield