Sha256: eb5fc5f3aa25edc76b6436eeb738075ae710ff1747613e43083e0021c7a8840c

Contents?: true

Size: 1.02 KB

Versions: 8

Compression:

Stored size: 1.02 KB

Contents

require 'rubygems'

require 'pathname'
require 'susanoo/cli/global_interface'
require 'susanoo/cli/project_interface'


module Susanoo
  module CLI

    EXEC_FILES = ['bin/susanoo']

    def self.run
      unless execute
        Susanoo::CLI::GlobalInterface.start
      end
    end

    def self.execute
      cwd = Dir.pwd

      loop do
        # Find an executable in bin/susanoo
        # In other word are we in an susanoo project or not?
        # Note: Single equalsign is on purpose
        if exec_file = find_executable

          # Inject path
          inject_dev_path
          exec Gem.ruby, exec_file, *ARGV
          break
        end

        Dir.chdir(cwd) and return false if Pathname.new(Dir.pwd).root?
        Dir.chdir('../')
      end
    end

    def self.inject_dev_path
      if File.exist? File.expand_path('../../../.git', __FILE__)
        ENV['SUSANOO_HOME'] = File.expand_path('../../', __FILE__)
      end
    end

    def self.find_executable
      EXEC_FILES.find { |exe| File.file?(exe) }
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
susanoo-0.14.0 lib/susanoo/cli.rb
susanoo-0.13.2 lib/susanoo/cli.rb
susanoo-0.13.1 lib/susanoo/cli.rb
susanoo-0.13.0 lib/susanoo/cli.rb
susanoo-0.12.3 lib/susanoo/cli.rb
susanoo-0.12.2 lib/susanoo/cli.rb
susanoo-0.12.1 lib/susanoo/cli.rb
susanoo-0.12.0 lib/susanoo/cli.rb