Sha256: f7e5059db346c2e8284d4de6a6fee4f78b90d069e991d98497487f7bfe1f8de4

Contents?: true

Size: 1.47 KB

Versions: 42

Compression:

Stored size: 1.47 KB

Contents

require_relative "../github"
require_relative "../scripts"

module Octopolo
  module Scripts
    class OctopoloSetup
      include Base
      extend UserConfigWrapper

      def self.invoke(*args)
        verify_git_extras_setup
        verify_user_setup
      end

      def self.verify_git_extras_setup
        install_git_extras unless git_extras_installed?
      end

      def self.git_extras_installed?
        check = cli.perform "which git-extras", false
        check.include? "git-extras"
      end

      def self.install_git_extras
        cli.say "Updating Homebrew to ensure latest git-extras formula."
        cli.perform "brew update"
        cli.say "Installing git-extras"
        cli.perform "brew install git-extras"
      end

      def self.verify_user_setup
        verify_user_full_name
        verify_user_github_credentials
      end

      def self.verify_user_full_name
        # if it's not set, it uses the USER environment variable
        if user_config.full_name == ENV["USER"]
          name = cli.prompt "Your full name:"
          user_config.full_name = name
        else
          cli.say "Full name '#{user_config.full_name}' already configured."
        end
      end

      def self.verify_user_github_credentials
        GitHub.check_connection
        cli.say "Successfully configured API token."
      rescue GitHub::BadCredentials, GitHub::TryAgain => e
        # if any error occurs, generate a new token
        cli.say e.message
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
octopolo-1.12.0 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.11.4 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.11.3 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.11.1 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.11.0 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.9.0 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.8.1 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.8.0 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.7.1 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.7.0 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.6.0 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.5.3 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.5.2 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.5.1 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.5.0 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.4.0 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.3.0 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.2.1 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.2.0 lib/octopolo/scripts/octopolo_setup.rb
octopolo-1.1.1 lib/octopolo/scripts/octopolo_setup.rb