Sha256: 60b0c4d9c9656669e8c3f045eb38652f5086e29957e62f4fdb9798c70feac031

Contents?: true

Size: 959 Bytes

Versions: 8

Compression:

Stored size: 959 Bytes

Contents

#! /usr/bin/env ruby

require 'rubygems'
require 'yaml'
require 'puppetfactory'

if File.exist? '/etc/puppetfactory/config.yaml'
  options = YAML.load_file('/etc/puppetfactory/config.yaml') rescue {}
else
  options = YAML.load_file('/etc/puppetfactory.yaml') rescue {}
end

options[:plugins] ||= [:LoginShell]
options[:logfile] ||= STDOUT
options[:session] ||= '12345'

$logger = Logger.new(options[:logfile])

plugins = options[:plugins].map do |plugin|
  require "puppetfactory/plugins/#{plugin.snake_case}"
  Puppetfactory::Plugins::const_get(plugin).new(options)
end

resp = plugins.select { |plugin| plugin.respond_to? :login }
raise "The login action is not exposed by any plugins" if resp.size == 0
raise "The login action is exposed by multiple loaded plugins! (#{resp.map {|p| p.class }})" unless resp.size == 1

print 'Please enter the session ID: '
raise 'Incorrect session ID' unless STDIN.gets.strip == options[:session]

resp.first.send(:login)

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
puppetfactory-0.5.6 bin/pfsh
puppetfactory-0.5.5 bin/pfsh
puppetfactory-0.5.4 bin/pfsh
puppetfactory-0.5.3 bin/pfsh
puppetfactory-0.5.2 bin/pfsh
puppetfactory-0.5.1 bin/pfsh
puppetfactory-0.5.0 bin/pfsh
puppetfactory-0.4.0 bin/pfsh