lib/raykit/environment.rb
require 'pathname' module Raykit # Provides functionality related to the development environment class Environment # Normalize a directory or filename to use forward slashes def self.normalize_path(name) name.gsub('\\','/') end # The root directory for the development environment. # May be set using the environment variable DEV_ROOT, # otherwise defaults to the user home directory def self.root_dir if(ENV['DEV_ROOT'].nil?) Environment::home_dir else normalize_path(ENV['DEV_ROOT']) end end # The user home directory def self.home_dir return normalize_path(ENV["USERPROFILE"]) if(ENV.include?("USERPROFILE")) normalize_path(ENV['HOME']) end # Get, and create if it does not exist, a specific development directory def self.get_dev_dir(name) dir = Pathname.new("#{Environment::root_dir}/#{name}") dir.mkpath dir.to_s end # Get the size of a directory and its contents def self.get_dir_size(dir) Dir.glob(File.join(dir, '**', '*')) .map{ |f| File.size(f) } .inject(:+) end def self.machine return ENV['COMPUTERNAME'] if !ENV['COMPUTERNAME'].nil? machine = `hostname` machine = machine.split('.')[0] if machine.include?('.') return machine.strip end def self.user ENV['USERNAME'] end def self.local_application_data return "#{ENV['USERPROFILE']}/AppData/Local".gsub('\\','/') end def self.admin? rights=%x[whoami /priv] return rights.include?('SeCreateGlobalPrivilege') end end end