Sha256: b5065a7269093ef6a7b42f2155b0804df827df6f284cd83aa3b2d4a1c216799b

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

require "yaml"
require "shelly/user"
require "shelly/cloudfile"

module Shelly
  module CLI
    class User < Thor
      namespace :users
      include Helpers

      desc "list", "List users who have access to current application"
      def list
        say_error "Must be run inside your project git repository" unless App.inside_git_repository?
        say_error "No Cloudfile found" unless Cloudfile.present?
        @cloudfile = Shelly::Cloudfile.new
        @cloudfile.fetch_users.each do |app, users|
          say "Cloud #{app}:"
          users.each { |user| say "  #{user}" }
        end
      rescue Client::APIError => e
        say e.message
        exit 1
      end

      desc "add [EMAIL]", "Add new developer to applications defined in Cloudfile"
      def add(email = nil)
        say_error "Must be run inside your project git repository" unless App.inside_git_repository?
        say_error "No Cloudfile found" unless Cloudfile.present?
        user_email = email || ask_for_email({:guess_email => false})
        @cloudfile = Shelly::Cloudfile.new
        @user = Shelly::User.new
        @user.send_invitation(@cloudfile.clouds, user_email)
        say "Sending invitation to #{user_email}"
      rescue Client::APIError => e
        if e.validation?
          e.each_error { |error| say_error error =~ /already in the project/ ? error.gsub("Email", "User") : error, :with_exit => false }
          exit 1
        end
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shelly-0.0.19 lib/shelly/cli/user.rb