403Webshell
Server IP : 66.29.132.122  /  Your IP : 3.15.219.130
Web Server : LiteSpeed
System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : admazpex ( 531)
PHP Version : 7.2.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/self/root/opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/hiera-eyaml-3.4.0/lib/hiera/backend/eyaml/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems/hiera-eyaml-3.4.0/lib/hiera/backend/eyaml//subcommand.rb
require 'base64'
require 'yaml'
# require 'hiera/backend/eyaml/subcommands/unknown_command'

class Hiera
  module Backend
    module Eyaml

      class Subcommand

        class << self
          attr_accessor :global_options, :options, :helptext
        end

        @@global_options = [
           {:name          => :encrypt_method,
              :description => "Override default encryption and decryption method (default is PKCS7)", 
              :short       => 'n', 
              :default     => "pkcs7"},
           {:name          => :version,
              :description => "Show version information"},
           {:name          => :verbose,
              :description => "Be more verbose",
              :short       => 'v'},
           {:name          => :trace,
              :description => "Enable trace debug",
              :short       => 't'},
           {:name          => :quiet,
              :description => "Be less verbose",
              :short       => 'q'},
           {:name          => :help,
              :description => "Information on how to use this command",
              :short       => 'h'}
          ]
        
        def self.load_config_file
          config = { :options => {}, :sources => [] }
          [ "/etc/eyaml/config.yaml", "#{ENV['HOME']}/.eyaml/config.yaml", "#{ENV['EYAML_CONFIG']}" ].each do |config_file|
            begin
              yaml_contents = YAML.load_file(config_file)
              config[:options].merge! yaml_contents
              config[:sources].push(config_file)
            rescue 
              raise StandardError, "Could not open config file \"#{config_file}\" for reading"
            end if config_file and File.file? config_file
          end
          config
        end

        def self.all_options 
          options = @@global_options.dup
          options += self.options if self.options
          options += Plugins.options
          # merge in defaults from configuration files
          config_file = self.load_config_file
          options.map!{ | opt| 
            key_name = "#{opt[:name]}"
            if config_file[:options].has_key? key_name
              opt[:default] = config_file[:options][key_name]
              opt
            else
              opt
            end
          }
          { :options => options, :sources => config_file[:sources] || [] }
        end

        def self.attach_option opt
          self.suboptions += opt
        end

        def self.find commandname = "unknown_command"
          begin
            require "hiera/backend/eyaml/subcommands/#{commandname.downcase}"
          rescue Exception => e
            require "hiera/backend/eyaml/subcommands/unknown_command"
            return Hiera::Backend::Eyaml::Subcommands::UnknownCommand
          end          
          command_module = Module.const_get('Hiera').const_get('Backend').const_get('Eyaml').const_get('Subcommands')
          command_class = Utils.find_closest_class :parent_class => command_module, :class_name => commandname
          command_class || Hiera::Backend::Eyaml::Subcommands::UnknownCommand
        end

        def self.parse

          me = self
          all = self.all_options

          options = Optimist::options do

            version "Hiera-eyaml version " + Hiera::Backend::Eyaml::VERSION.to_s
            banner ["eyaml #{me.prettyname}: #{me.description}", me.helptext, "Options:"].compact.join("\n\n")

            all[:options].each do |available_option|

              skeleton = {:description => "",
                          :short => :none}

              skeleton.merge! available_option
              opt skeleton[:name], 
                  skeleton[:desc] || skeleton[:description],  #legacy plugins 
                  :short => skeleton[:short], 
                  :default => skeleton[:default], 
                  :type => skeleton[:type]

            end

            stop_on Eyaml.subcommands

          end

          if options[:verbose]
            Hiera::Backend::Eyaml.verbosity_level += 1
          end

          if options[:trace]
            Hiera::Backend::Eyaml.verbosity_level += 2
          end

          if options[:quiet]
            Hiera::Backend::Eyaml.verbosity_level = 0
          end

          if options[:encrypt_method]
            Hiera::Backend::Eyaml.default_encryption_scheme = options[:encrypt_method]
          end

          if all[:sources]
            all[:sources].each do |source|
              LoggingHelper::debug "Loaded config from #{source}"
            end
          end

          options

        end

        def self.validate args
          args
        end

        def self.description
          "no description"
        end

        def self.helptext
          "Usage: eyaml #{self.prettyname} [options]"
        end

        def self.execute
          raise StandardError, "This command is not implemented yet (#{self.to_s.split('::').last})"
        end

        def self.prettyname
          Utils.snakecase self.to_s.split('::').last
        end

        def self.hidden?
          false
        end

      end

    end
  end
end

Youez - 2016 - github.com/yon3zu
LinuXploit