class Bashly::Settings
def commands_dir
def commands_dir @commands_dir ||= get :commands_dir end
def compact_short_flags
def compact_short_flags @compact_short_flags ||= get :compact_short_flags end
def config
def config @config ||= defsult_settings.merge user_settings end
def config_path
def config_path @config_path ||= get(:config_path) % { source_dir: source_dir } end
def conjoined_flag_args
def conjoined_flag_args @conjoined_flag_args ||= get :conjoined_flag_args end
def default_settings_path
def default_settings_path asset 'libraries/settings/settings.yml' end
def defsult_settings
def defsult_settings @defsult_settings ||= Config.new default_settings_path end
def enable_bash3_bouncer
def enable_bash3_bouncer @enable_bash3_bouncer ||= get :enable_bash3_bouncer end
def enable_deps_array
def enable_deps_array @enable_deps_array ||= get :enable_deps_array end
def enable_env_var_names_array
def enable_env_var_names_array @enable_env_var_names_array ||= get :enable_env_var_names_array end
def enable_header_comment
def enable_header_comment @enable_header_comment ||= get :enable_header_comment end
def enable_inspect_args
def enable_inspect_args @enable_inspect_args ||= get :enable_inspect_args end
def enable_sourcing
def enable_sourcing @enable_sourcing ||= get :enable_sourcing end
def enable_view_markers
def enable_view_markers @enable_view_markers ||= get :enable_view_markers end
def enabled?(feature)
def enabled?(feature) send(:"enable_#{feature}") == 'always' || (send(:"enable_#{feature}") == 'production' && production?) || (send(:"enable_#{feature}") == 'development' && !production?) end
def env
def env @env ||= get(:env)&.to_sym end
def env=(value)
def env=(value) @env = value&.to_sym end
def env_value(key)
def env_value(key) ENV["BASHLY_#{key.upcase}"] end
def formatter
def formatter @formatter ||= get :formatter end
def full_lib_dir
def full_lib_dir "#{source_dir}/#{lib_dir}" end
def function_name(key)
def function_name(key) function_names[key.to_s] || key.to_s end
def function_names
def function_names @function_names ||= get :function_names end
def get(key)
def get(key) case env_value key when nil then config[key.to_s] when '0', 'false', 'no' then false when '1', 'true', 'yes' then true else env_value key end end
def lib_dir
def lib_dir @lib_dir ||= get :lib_dir end
def partials_extension
def partials_extension @partials_extension ||= get :partials_extension end
def private_reveal_key
def private_reveal_key @private_reveal_key ||= get :private_reveal_key end
def production?
def production? env == :production end
def show_examples_on_error
def show_examples_on_error @show_examples_on_error ||= get :show_examples_on_error end
def source_dir
def source_dir @source_dir ||= get :source_dir end
def strict
def strict @strict ||= get :strict end
def strict_string
def strict_string if strict.is_a? String strict elsif strict 'set -euo pipefail' else 'set -e' end end
def tab_indent
def tab_indent @tab_indent ||= get :tab_indent end
def target_dir
def target_dir @target_dir ||= get :target_dir end
def usage_colors
def usage_colors @usage_colors ||= get :usage_colors end
def user_settings
def user_settings @user_settings ||= File.exist?(user_settings_path) ? Config.new(user_settings_path) : {} end
def user_settings_path
def user_settings_path @user_settings_path ||= if ENV['BASHLY_SETTINGS_PATH'] ENV['BASHLY_SETTINGS_PATH'] elsif File.exist? 'bashly-settings.yml' 'bashly-settings.yml' else 'settings.yml' end end
def var_aliases
def var_aliases @var_aliases ||= get :var_aliases end