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