Sha256: 6736a6e221397b32d28415bf732b3cfbbc301397010c1f1ec45f848f44b6de57

Contents?: true

Size: 1001 Bytes

Versions: 9

Compression:

Stored size: 1001 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'
options[:master]  ||= `hostname -f`.strip

$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

9 entries across 9 versions & 1 rubygems

Version Path
puppetfactory-0.6.5 bin/pfsh
puppetfactory-0.6.4 bin/pfsh
puppetfactory-0.6.3 bin/pfsh
puppetfactory-0.6.2 bin/pfsh
puppetfactory-0.6.1 bin/pfsh
puppetfactory-0.6.0 bin/pfsh
puppetfactory-0.5.9 bin/pfsh
puppetfactory-0.5.8 bin/pfsh
puppetfactory-0.5.7 bin/pfsh