Sha256: 688c09cd70526991db09016056f5ead44e5f86e62bbb8bc84331f7ed74e508a7
Contents?: true
Size: 1.34 KB
Versions: 2
Compression:
Stored size: 1.34 KB
Contents
#!/usr/bin/env ruby $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib]) require 'gritano' def help puts " ssh user@host command Examples: ssh git@host.com repo:list ssh git@host.com key:list ssh git@host.com key:add keyname < key.pub ssh git@host.com key:rm keyname ssh git@host.com admin:help -- v#{File.open(File.join(File.dirname(__FILE__), '..', 'VERSION')).readlines.join}" end ActiveRecord::Base.establish_connection(YAML::load(File.open(File.join(Etc.getpwuid.dir, '.gritano', 'database.yml')))) login = ARGV[0] command = Gritano::Command.eval(ENV['SSH_ORIGINAL_COMMAND']) begin case command[:access] when :read, :write then user = Gritano::User.find_by_login(login) repository = Gritano::Repository.find_by_name(command[:repo]) if user and repository if user.check_access(repository, command[:access]) puts "#{command[:command]} #{File.join(repository.full_path)}" exec "#{command[:command]} #{File.join(repository.full_path)}" end end when :user_cmd cmd = command[:command].gsub("[USER]", login) exec "gritano #{cmd}" when :admin_cmd cmd = command[:command] user = Gritano::User.find_by_login(login) if user.admin? exec "gritano #{cmd}" else puts "access denied" end end rescue puts help end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gritano-0.4.1 | bin/gritano-check |
gritano-0.4.0 | bin/gritano-check |