class Hiiro::Shell

def self.capture_output(*command, **env)

def self.capture_output(*command, **env)
  env = env.transform_keys(&:to_s).transform_values(&:to_s)
  stdout, status = Open3.capture2(env, *command)
  stdout
end

def self.pipe(content, *command)

def self.pipe(content, *command)
  selected, status = Open3.capture2(*command, stdin_data: content)
  return nil unless status.success?
  selected&.chomp
end

def self.pipe_lines(lines, *command)

def self.pipe_lines(lines, *command)
  content = lines.is_a?(Array) ? lines.join("\n") : lines.to_s
  pipe(content, *command)
end