Sha256: 832b383de1933a54edd31201a3367c31abfcb268cea60adba795606f145f4fba
Contents?: true
Size: 1.88 KB
Versions: 2
Compression:
Stored size: 1.88 KB
Contents
require File.join(File.dirname(__FILE__), 'base') module Gritano module CLI module Console class Remote < Base def self.basename Gritano::CLI::Config.remote_ssh_prefix end before %w{ repo:list key:list key:add key:rm admin } do ActiveRecord::Base.establish_connection(YAML::load(Config.database_connection)) unless ActiveRecord::Base.connected? end define_task("repo:list", "list all repositories") do use_if_not_nil Gritano::Core::User.where(login: Config.remote_user).first do |user| render_table(user.repositories.order(:name), :name) end end define_task("key:list", "list all your keys") do use_if_not_nil Gritano::Core::User.where(login: Config.remote_user).first do |user| render_table(user.keys.order(:name), :name) end end define_task("key:add", "add a key") do |key_name| use_if_not_nil Gritano::Core::User.where(login: Config.remote_user).first do |user| create_model(user.keys, name: key_name, key: $stdin.readlines.join) end end define_task("key:rm", "remove a user's key") do |key_name| use_if_not_nil Gritano::Core::User.where(login: Config.remote_user).first do |user| destroy_model(user.keys, name: key_name) end end define_task("admin", "execute admin commands") do |*command| use_if_not_nil Gritano::Core::User.where(login: Config.remote_user).first do |user| if user.admin? def Local.basename "#{Remote.basename} admin" end Local.start(command) else render_text "you are not an admin!", :error end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gritano-2.0.2 | lib/gritano/console/remote.rb |
gritano-2.0.1 | lib/gritano/console/remote.rb |