module LocalPac class Initializer private attr_reader :config, :options public def initialize(options = {}, config = LocalPac.config) @options = options @config = config end def run if options[:create_pid_directory] LocalPac.ui_logger.info "Creating pid directory: #{::File.dirname(config.pid_file)}" Actions::CreateDirectory.new(::File.dirname(config.pid_file), force: options[:force]).run end if options[:create_log_directory] LocalPac.ui_logger.info "Creating log directory: #{::File.dirname(config.access_log)}" Actions::CreateDirectory.new(::File.dirname(config.access_log), force: options[:force]).run end if options[:create_sass_cache] LocalPac.ui_logger.info "Creating sass cache #{config.sass_cache}" Actions::CreateDirectory.new(config.sass_cache, force: options[:force]).run end if options[:create_local_storage] LocalPac.ui_logger.info "Creating local storage: #{config.local_storage}" Actions::CreateRepository.new(config.local_storage, bare: true, force: options[:force]).run end if options[:create_pre_receive_hook] LocalPac.ui_logger.info "Creating pre-receive hook in local storage \"#{config.local_storage}\"." Actions::CreateFile.new(:'git-hook.rb', ::File.join(config.local_storage, 'hooks', 'pre-receive'), Data.new(config), force: options[:force], executable: true).run end if options[:create_config_file] LocalPac.ui_logger.info "Creating config file at \"#{config.config_file}\"." Actions::CreateFile.new(:'example-config', config.config_file, Data.new(config), force: options[:force], create_directories: true).run end if options[:pre_seed] LocalPac.ui_logger.info "Adding examples to repository at #{config.local_storage}/examples" Actions::AddExamplesToLocalStorage.new(config.local_storage).run end LocalPac.ui_logger.info "Showing the configuration of local_pac on your system." Actions::CreateOutput.new(:'example-config', $stdout, Data.new(config)).run end end end