module BinInstall::Shell

Public Class Methods

append_to_profiles(value) click to toggle source
# File lib/bin_install/shell.rb, line 23
def self.append_to_profiles(value)
  profile_paths.each do |path|
    file = File.open(path, 'a+')

    if file.read.include?(value)
      puts "Value already exist in #{path}. Skipping file injection.".blue
    else
      puts "Writing to #{path}:\n#{value.to_s.purple}"
      file << value.to_s
    end

    file.close
  end
end
default_no?(value) click to toggle source
# File lib/bin_install/shell.rb, line 15
def self.default_no?(value)
  ['', 'n', 'no'].include?(value.downcase)
end
default_yes?(value) click to toggle source
# File lib/bin_install/shell.rb, line 7
def self.default_yes?(value)
  ['', 'y', 'yes'].include?(value.downcase)
end
executable_exists?(executable) click to toggle source
# File lib/bin_install/shell.rb, line 19
def self.executable_exists?(executable)
  system("which #{executable}")
end
no?(value) click to toggle source
# File lib/bin_install/shell.rb, line 11
def self.no?(value)
  %w[n no].include?(value.downcase)
end
profile_paths() click to toggle source
# File lib/bin_install/shell.rb, line 38
def self.profile_paths
  [File.expand_path('~/.zshrc'), File.expand_path('~/.bash_profile')]
end
wait(seconds = 10) click to toggle source
# File lib/bin_install/shell.rb, line 42
def self.wait(seconds = 10)
  print 'Please wait: '.purple
  seconds.downto(1) do |i|
    print i.to_s.purple
    3.times do
      sleep(0.25)
      print '.'.purple
    end
    sleep(0.25)
  end
  print "\n"
end
yes?(value) click to toggle source
# File lib/bin_install/shell.rb, line 3
def self.yes?(value)
  %w[y yes].include?(value.downcase)
end