# frozen_string_literal: true module RubyEasyRSA module Commands module Mixins module GlobalConfig private # rubocop:disable Style/RedundantAssignment # rubocop:disable Metrics/MethodLength # rubocop:disable Metrics/AbcSize def configure_command(initial_builder, parameters) builder = super builder = with_openssl_binary( builder, parameters[:openssl_binary] ) builder = with_extensions_directory( builder, parameters[:extensions_directory] ) builder = with_ssl_configuration( builder, parameters[:ssl_configuration] ) builder = with_safe_configuration( builder, parameters[:safe_configuration] ) builder = with_vars( builder, parameters[:vars] ) builder = with_batch( builder, parameters[:batch] ) builder = with_pki_directory( builder, parameters[:pki_directory] ) builder = with_input_password( builder, parameters[:input_password] ) builder = with_output_password( builder, parameters[:output_password] ) builder end # rubocop:enable Metrics/AbcSize # rubocop:enable Metrics/MethodLength # rubocop:enable Style/RedundantAssignment def with_openssl_binary(builder, openssl_binary) return builder unless openssl_binary builder.with_environment_variable( 'EASYRSA_OPENSSL', openssl_binary ) end def with_extensions_directory(builder, extensions_directory) return builder unless extensions_directory builder.with_environment_variable( 'EASYRSA_EXT_DIR', extensions_directory ) end def with_ssl_configuration(builder, ssl_configuration) return builder unless ssl_configuration builder.with_environment_variable( 'EASYRSA_SSL_CONF', ssl_configuration ) end def with_safe_configuration(builder, safe_configuration) return builder unless safe_configuration builder.with_environment_variable( 'EASYRSA_SAFE_CONF', safe_configuration ) end def with_vars(builder, vars) return builder unless vars builder.with_option( '--vars', vars ) end def with_batch(builder, batch) return builder unless batch builder.with_flag( '--batch' ) end def with_pki_directory(builder, pki_directory) return builder unless pki_directory builder.with_option( '--pki-dir', pki_directory ) end def with_input_password(builder, input_password) return builder unless input_password builder.with_option( '--passin', input_password ) end def with_output_password(builder, output_password) return builder unless output_password builder.with_option( '--passout', output_password ) end end end end end