Sha256: da76cf321e24d7f3d61563b7e42f155ab86afe6f36542585c59091766d860b24

Contents?: true

Size: 1.88 KB

Versions: 5

Compression:

Stored size: 1.88 KB

Contents

module Gritano
  module CLI
    
    def CLI._execute(cmd, console)
      begin
        output = console.execute(cmd)
        if output[0]
          output[1].to_s
        else
          "error: #{output[1]}"
        end
      rescue
        console.execute(["help"])[1]
      end
    end
    
    def CLI.execute(cmd, stdin = STDIN, home_dir = Etc.getpwuid.dir, repo_dir = Etc.getpwuid.dir)
      Gritano::Console.remote_console(false)
      _execute(cmd, Gritano::Console::Gritano.new(stdin, home_dir, repo_dir))
    end
    
    def CLI.check(cmd, login, stdin = STDIN, home_dir = Etc.getpwuid.dir, repo_dir = Etc.getpwuid.dir)
      Gritano::Console.remote_console(true)
      _execute(cmd + [login], Gritano::Console::Remote.new(stdin, home_dir, repo_dir))
    end
    
    def CLI.check_pub_key(key, home_dir = Etc.getpwuid.dir)
      ActiveRecord::Base.establish_connection(YAML::load(File.open(File.join(home_dir, '.gritano', 'database.yml'))))
      k = Key.find_by_key(key)
      if k
        return "command=\"gritano-remote #{k.user.login}\" #{k.key}"
      else
        return "invalid"
      end
    end

    def CLI.check_password(login, password, home_dir = Etc.getpwuid.dir, repo_dir = Etc.getpwuid.dir)
      ActiveRecord::Base.establish_connection(YAML::load(File.open(File.join(home_dir, '.gritano', 'database.yml'))))
      user = User.find_by_login(login)
      if user
        return user.password == password
      end
      return false
    end

    def CLI.check_access(login, repo, access, home_dir = Etc.getpwuid.dir, repo_dir = Etc.getpwuid.dir)
      ActiveRecord::Base.establish_connection(YAML::load(File.open(File.join(home_dir, '.gritano', 'database.yml'))))
      user = User.find_by_login(login)
      if user
        repo = Gritano::Repository.find_by_name(repo)
        if repo
          return user.check_access(repo, access)
        end
      end
      return false
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
gritano-0.11.0 lib/gritano/cli.rb
gritano-0.10.3 lib/gritano/cli.rb
gritano-0.10.2 lib/gritano/cli.rb
gritano-0.10.1 lib/gritano/cli.rb
gritano-0.10.0 lib/gritano/cli.rb