Sha256: 8ce396dceb0f35e2657e5f72bea8599e559d2cbc1bec4ca26cd98ffbeb4a2e70

Contents?: true

Size: 1.44 KB

Versions: 7

Compression:

Stored size: 1.44 KB

Contents

require 'grit'

module Spider; module AppServer
    
    class GitApp < App
        attr_reader :repo
        attr_reader :branches
        
        def initialize(path)
            super
            repo = Grit::Repo.new(path)
            spec = nil
            repo_branches = repo.heads.map{ |h| h.name }
            @branches = repo_branches
            @repo = repo
            read_spec
        end

        def read_spec(branch='master')
            @repo.tree(branch).blobs.each do |blob|
                next unless blob.basename =~ /\.appspec$/
                spec = blob.data
                @spec = Spider::App::AppSpec.eval(spec)
                @spec.branch = branch
                if repo_base = Spider.conf.get('app_server.git_repo_base')
                    unless @spec.git_repo
                        @spec.git_repo(repo_base+'/'+@spec.id)
                    end
                end
                if repo_base_rw = Spider.conf.get('app_server.git_repo_rw_base')
                    unless @spec.git_repo_rw
                        @spec.git_repo_rw(repo_base_rw+'/'+@spec.id)
                    end
                end
                @last_modified = repo.commits.first.authored_date # FIXME
                @spec.app_server ||= AppServer::AppServerController.http_s_url
                break
            end
            @repo = repo
            @spec
        end
        
        def package
            
        end
        
    end
    
end; end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
spiderfw-1.0.1 apps/app_server/lib/git_app.rb
spiderfw-1.0.0 apps/app_server/lib/git_app.rb
spiderfw-0.6.39 apps/app_server/lib/git_app.rb
spiderfw-0.6.38 apps/app_server/lib/git_app.rb
spiderfw-0.6.37 apps/app_server/lib/git_app.rb
spiderfw-0.6.35 apps/app_server/lib/git_app.rb
spiderfw-0.6.34 apps/app_server/lib/git_app.rb