Skip to content
Extraits de code Groupes Projets
configuration_methods.rb 3,99 ko
Newer Older
  • Learn to ignore specific revisions
  • Jonne Haß's avatar
    Jonne Haß a validé
    module Configuration
    
      KNOWN_SERVICES = [:twitter, :tumblr, :facebook, :wordpress].freeze
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
      module Methods
        def pod_uri
          return @pod_uri unless @pod_uri.nil?
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          url = environment.url.get
          url = "http://#{url}" unless url =~ /^(https?:\/\/)/
          url << "/" unless url.end_with?("/")
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          begin
            @pod_url = Addressable::URI.parse(url)
          rescue
            puts "WARNING: pod url #{url} is not a legal URI"
          end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          @pod_url
        end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def bare_pod_uri
          pod_uri.authority.gsub('www.', '')
        end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def configured_services
          return @configured_services unless @configured_services.nil?
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          @configured_services = []
    
          KNOWN_SERVICES.each do |service|
    
    Jonne Haß's avatar
    Jonne Haß a validé
            @configured_services << service if services.send(service).enable?
          end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          @configured_services
        end
        attr_writer :configured_services
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def secret_token
    
    Jonne Haß's avatar
    Jonne Haß a validé
          if heroku?
            return ENV['SECRET_TOKEN'] if ENV['SECRET_TOKEN']
            warn "FATAL: Running on Heroku with SECRET_TOKEN unset"
            warn "       Run heroku config:add SECRET_TOKEN=#{SecureRandom.hex(40)}"
            Process.exit(1)
          else
            token_file = File.expand_path(
              '../config/initializers/secret_token.rb',
              File.dirname(__FILE__)
            )
            unless File.exist? token_file
    
              `DISABLE_SPRING=1 bin/rake generate:secret_token`
    
    Jonne Haß's avatar
    Jonne Haß a validé
            end
            require token_file
    
    Jonne Haß's avatar
    Jonne Haß a validé
            Diaspora::Application.config.secret_key_base
    
    Jonne Haß's avatar
    Jonne Haß a validé
          end
    
    Jonne Haß's avatar
    Jonne Haß a validé
        end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def version_string
          return @version_string unless @version_string.nil?
          @version_string = version.number.to_s
          @version_string << "-p#{git_revision[0..7]}" if git_available?
          @version_string
        end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def git_available?
          return @git_available unless @git_available.nil?
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          if heroku?
            @git_available = false
          else
            `which git`
    
            `git status 2> /dev/null` if $?.success?
    
    Jonne Haß's avatar
    Jonne Haß a validé
            @git_available = $?.success?
          end
        end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def git_revision
          get_git_info if git_available?
          @git_revision
        end
        attr_writer :git_revision
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def git_update
          get_git_info if git_available?
          @git_update
        end
        attr_writer :git_update
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def rails_asset_id
          (git_revision || version)[0..8]
        end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def get_redis_options
    
    Jonne Haß's avatar
    Jonne Haß a validé
          if redistogo_url.present?
    
    Jonne Haß's avatar
    Jonne Haß a validé
            warn "WARNING: using the REDISTOGO_URL environment variable is deprecated, please use REDIS_URL now."
    
    Jonne Haß's avatar
    Jonne Haß a validé
            ENV['REDIS_URL'] = redistogo_url
          end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          redis_options = {}
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          redis_url = ENV['REDIS_URL'] || environment.redis.get
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          if ENV['RAILS_ENV']== 'integration2'
    
    Jonne Haß's avatar
    Jonne Haß a validé
            redis_options[:url] = "redis://localhost:6380"
    
    Jonne Haß's avatar
    Jonne Haß a validé
          elsif redis_url.present?
            unless redis_url.start_with?("redis://") || redis_url.start_with?("unix:///")
    
    Jonne Haß's avatar
    Jonne Haß a validé
              warn "WARNING: Your redis url (#{redis_url}) doesn't start with redis:// or unix:///"
    
    Jonne Haß's avatar
    Jonne Haß a validé
            end
    
    Jonne Haß's avatar
    Jonne Haß a validé
            redis_options[:url] = redis_url
    
    Jonne Haß's avatar
    Jonne Haß a validé
          end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
          redis_options[:namespace] = AppConfig.environment.sidekiq.namespace.get
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          redis_options
    
    Jonne Haß's avatar
    Jonne Haß a validé
        end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def sidekiq_log
          path = Pathname.new environment.sidekiq.log.get
          path = Rails.root.join(path) unless pathname.absolute?
          path.to_s
        end
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def postgres?
    
          ActiveRecord::Base.connection.adapter_name == "PostgreSQL"
        end
    
        def mysql?
          ActiveRecord::Base.connection.adapter_name == "Mysql2"
    
        def bitcoin_donation_address
          if AppConfig.settings.bitcoin_wallet_id.present?
    
    Jonne Haß's avatar
    Jonne Haß a validé
            warn "WARNING: bitcoin_wallet_id is now bitcoin_address. Change in diaspora.yml."
    
            return AppConfig.settings.bitcoin_wallet_id
          end
    
          if AppConfig.settings.bitcoin_address.present?
            AppConfig.settings.bitcoin_address
          end
        end
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        private
    
        def get_git_info
          return if git_info_present? || !git_available?
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
          git_cmd = `git log -1 --pretty="format:%H %ci"`
    
    Jonne Haß's avatar
    Jonne Haß a validé
          if git_cmd =~ /^(\w+?)\s(.+)$/
    
    Jonne Haß's avatar
    Jonne Haß a validé
            @git_revision = $1
            @git_update = $2.strip
          end
        end
    
    Jonne Haß's avatar
    Jonne Haß a validé
    
    
    Jonne Haß's avatar
    Jonne Haß a validé
        def git_info_present?
          @git_revision || @git_update
        end
      end
    end