class Net::Openvpn::Generators::Keys::Directory

Public Class Methods

new(**props) click to toggle source
# File lib/net/openvpn/generators/keys/directory.rb, line 7
def initialize(**props)
  @props = Openvpn.props.merge props
end

Public Instance Methods

exist?() click to toggle source
# File lib/net/openvpn/generators/keys/directory.rb, line 11
def exist?
  File.directory?(@props[:key_dir]) and
  File.exist?(@props[:key_index]) and
  File.exist?("#{@props[:key_dir]}/serial")
end
generate() click to toggle source

Sets up the directory where keys are to be generated. Also creates the serial and index.txt used by the pkitool that comes with easy-rsa

# File lib/net/openvpn/generators/keys/directory.rb, line 20
def generate

  FileUtils.mkdir_p @props[:key_dir] unless
    File.directory? @props[:key_dir]

  FileUtils.cd(@props[:key_dir]) do
    FileUtils.touch @props[:key_index]
    File.open("serial", "w") {|f| f.write "01" }
  end

  FileUtils.chown_R(
    @props[:key_dir_owner],
    @props[:key_dir_group],
    @props[:key_dir]
  )

  FileUtils.chmod_R(
    @props[:key_dir_permission],
    @props[:key_dir]
  )

end