class VPN::Config::CLI

Public Instance Methods

endpoints(provider="Private Internet Access") click to toggle source
# File lib/vpn/config/cli.rb, line 70
def endpoints(provider="Private Internet Access")
  generator = VPN::Config::Generator.new(data_file: expand_path(options[:data_file]))
  provider = generator.providers.find {|pr| pr["name"] =~ Regexp.new(provider, Regexp::IGNORECASE) }
  if provider
    provider["endpoints"].each do |e|
      puts "* " + e["name"]
      if options[:verbose]
        puts "  * Host: " + e["host"]
        puts "  * UUID: " + e["uuid"]
        puts "  * SharedSecret: " + e["shared_secret"]
      end
    end
  else
    abort "No provider found"
  end
end
expand_path(path) click to toggle source
# File lib/vpn/config/cli.rb, line 88
        def expand_path(path)
  path ? File.expand_path(path) : nil
end
generate(output_file) click to toggle source
# File lib/vpn/config/cli.rb, line 19
def generate(output_file)
  generator = VPN::Config::Generator.new(
    auth_name: options[:username],
    auth_pass: options[:password],
    identifier: options[:identifier],
    certificate_path: expand_path(options[:certificate_path]),
    certificate_pass: options[:certificate_pass],
    endpoints: options[:endpoints],
    provider: options[:provider],
    data_file: expand_path(options[:data_file])
  )

  plist = if options[:sign]
    generator.generate_signed_plist
  else
    generator.generate_plist
  end

  if output_file.nil? || output_file.empty?
    puts plist
  else
    unless output_file =~ /\.(mobileconfig|plist)\z/i
      output_file = output_file + ".mobileconfig"
    end

    out_path = File.expand_path(output_file)
    puts "Writing to: #{out_path}"

    File.open(output_file, "wb") do |f|
      f << plist
    end
  end
end
providers() click to toggle source
# File lib/vpn/config/cli.rb, line 56
def providers
  generator = VPN::Config::Generator.new(data_file: expand_path(options[:data_file]))
  generator.providers.each do |pr|
    puts "* " + pr["name"]
    if options[:verbose]
      puts "  * URL: " + pr["url"]
      puts "  * UUID: " + pr["uuid"]
    end
  end
end