Module: Rise::Util

Defined in:
lib/core/util.rb

Overview

Utility methods

Class Method Summary collapse

Class Method Details

.check_for_update!Object

Check for a new version of the gem



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/core/util.rb', line 27

def self.check_for_update!
  src = git_or_gem
  begin
    if src == 2  # if the gem was downloaded from rubygems

      current_version = JSON.parse(HTTP.get('https://rubygems.org/api/v1/versions/rise-cli/latest.json'))['version']
      if current_version != Rise::Constants::VERSION
        Whirly.start(
          spinner: 'line',
          status: "New version available (#{Paint[Rise::Constants::VERSION, 'red']} -> #{Paint[current_version, '#3498db']}), updating..."
        ) do
          system("gem uninstall rise-cli -v #{Rise::Constants::VERSION} > /dev/null")
          system("gem install rise-cli > /dev/null")
          puts Paint["Update complete, just run #{Paint['`rise`', '#3498db']} to deploy"]
        end
      end
    elsif src == 1
      if `git log HEAD..origin/master --oneline` != ''
        puts "It seems you're on bleeding edge, fetching new changes..."
        vputs("Updating from #{`git show --no-color --oneline -s`.split(' ')[0]} to #{`git rev-parse --short HEAD`}")
        `git pull`
        puts Paint["Update complete, just run #{Paint['`rise`', '#3498db']} to deploy"]
      end
    end
  rescue StandardError => e
    puts "Unable to check for updates. Error: #{Paint[e.message, 'red']}"
    exit 1
  end
end

.first_run?Boolean

Checks if rise is being run for the first time



20
21
22
# File 'lib/core/util.rb', line 20

def self.first_run?
  !File.directory?(File.join(Dir.home, '.rise'))
end

.open_deployment_in_browser(url) ⇒ Object

Opens url in a web browser if possible



84
85
86
87
88
89
90
# File 'lib/core/util.rb', line 84

def self.open_deployment_in_browser(url)
  if OS.windows?
    system("START \"\" \"#{url}\"")
  else
    system("open #{url}")
  end
end

.setupObject

Creates all of the necessary files and login information



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/core/util.rb', line 59

def self.setup
  puts Paint['Detected first time run, creating necessary files...', :blue]
  FileUtils.mkdir(RISE_DATA_DIR)
  FileUtils.mkdir(File.join(RISE_DATA_DIR, 'auth'))

  # TODO: Reimplement when the backend server actually works

  #  Get the input from the user

  # print Paint['1. Log in\n2. Sign up\n  > ', :bold]

  # while (choice = gets.chomp!)

  #   if choice == '1'

  #     login

  #     break

  #   elsif choice == '2'

  #     signup

  #     break

  #   else

  #     puts Paint['Please type `1` or `2`', :red]

  #     next

  #   end

  # end

end