Sha256: 134918667c22c96ea458a5dbba6d7925b3df9452bbbe9ada2a01165d281bd43c

Contents?: true

Size: 720 Bytes

Versions: 1

Compression:

Stored size: 720 Bytes

Contents

require 'open3'
require 'shellwords'

module PostfixAdmin
  class Doveadm
    def self.schemes
      result = `#{self.command_name} -l`
      result.split
    end

    def self.password(in_password, in_scheme, prefix)
      password = Shellwords.escape(in_password)
      scheme = Shellwords.escape(in_scheme)
      _stdin, stdout, stderr = Open3.popen3("#{self.command_name} -s #{scheme} -p #{password}")

      if stderr.readlines.to_s =~ /Fatal:/
        raise Error, stderr.readlines
      else
        res = stdout.readlines.first.chomp
        if prefix
          res
        else
          res.gsub("{#{scheme}}", "")
        end
      end
    end

    def self.command_name
      "doveadm pw"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
postfix_admin-0.3.0 lib/postfix_admin/doveadm.rb