Sha256: 4e24d9a3dbacaf2386a45924762eb6afd78383a082aa2c5514b134d259f195e8

Contents?: true

Size: 1.05 KB

Versions: 3

Compression:

Stored size: 1.05 KB

Contents

require File.join(File.dirname(__FILE__), 'base')

module Gritano
  module CLI
    module Console
      class Git < Base
        before %w{ git:receive:pack
                   git:upload:pack
                } do
          ActiveRecord::Base.establish_connection(YAML::load(Config.database_connection))
        end

        define_task("git:receive:pack", "") do |repo_name|
          use_if_not_nil Gritano::Core::User.where(login: Config.remote_user).first do |user|
            repo = Gritano::Core::Repository.where(name: repo_name.gsub("'", "")).first
            Kernel.exec "git-receive-pack '#{repo.full_path}'" if user.check_access(repo, :write)
          end
        end

        define_task("git:upload:pack", "") do |repo_name|
          use_if_not_nil Gritano::Core::User.where(login: Config.remote_user).first do |user|
            repo = Gritano::Core::Repository.where(name: repo_name.gsub("'", "")).first
            Kernel.exec "git-upload-pack '#{repo.full_path}'" if user.check_access(repo, :read)
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gritano-2.0.2 lib/gritano/console/git.rb
gritano-2.0.1 lib/gritano/console/git.rb
gritano-2.0.0 lib/gritano/console/git.rb