Class: Environment
Constant Summary collapse
- @@default =
nil
Instance Attribute Summary collapse
-
#output ⇒ Object
Returns the value of attribute output.
-
#publish_dir ⇒ Object
Returns the value of attribute publish_dir.
Class Method Summary collapse
- .check ⇒ Object
- .default ⇒ Object
-
.dev_root ⇒ Object
Begin LEGACY support.
- .get_version(text) ⇒ Object
- .linux? ⇒ Boolean
- .mac? ⇒ Boolean
- .OS ⇒ Object
- .unix? ⇒ Boolean
- .windows? ⇒ Boolean
Instance Method Summary collapse
-
#admin? ⇒ Boolean
End LEGACY support.
- #colorize? ⇒ Boolean
- #debug? ⇒ Boolean
- #dropbox_dir ⇒ Object
- #get_env(key) ⇒ Object
- #has_work? ⇒ Boolean
- #home_dir ⇒ Object
- #info ⇒ Object
-
#initialize(env = nil) ⇒ Environment
constructor
A new instance of Environment.
- #log_dir ⇒ Object
- #machine ⇒ Object
- #make_dir ⇒ Object
- #out(message) ⇒ Object
- #root_dir ⇒ Object
- #set_env(key, value) ⇒ Object
- #show_success? ⇒ Boolean
- #tmp_dir ⇒ Object
- #user ⇒ Object
- #working? ⇒ Boolean
- #wrk_dir ⇒ Object
Methods inherited from Hash
Constructor Details
#initialize(env = nil) ⇒ Environment
Returns a new instance of Environment.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/base/environment.rb', line 14 def initialize env=nil @output='' @env=Hash.new @env_aliases={'HOME' => ['USERPROFILE'], 'DEV_ROOT' => ['DEV_HOME','HOME','USERPROFILE'], 'USERNAME' => ['USER','USR'] } env.each{|k,v| @env[k.to_s]=v} if !env.nil? @@default=self if @@default.nil? @publish_dir="#{root_dir}/publish" FileUtils.mkdir_p @publish_dir if !File.exists? @publish_dir end |
Instance Attribute Details
#output ⇒ Object
Returns the value of attribute output.
7 8 9 |
# File 'lib/base/environment.rb', line 7 def output @output end |
#publish_dir ⇒ Object
Returns the value of attribute publish_dir.
7 8 9 |
# File 'lib/base/environment.rb', line 7 def publish_dir @publish_dir end |
Class Method Details
.check ⇒ Object
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
# File 'lib/base/environment.rb', line 184 def self.check puts 'checking commands...' missing_command=false ['ruby --version','svn --version --quiet','git --version','msbuild /version','nunit-console','nuget','candle','light','gem --version'].each{|cmd| command=Command.new(cmd) command[:quiet]=true command[:ignore_failure]=true command.execute if(command[:exit_code] == 0) puts "#{cmd.split(' ')[0]} #{get_version(command[:output])}" else puts "#{cmd.split(' ')[0]} not found." missing_command=true end } puts "missing commands may be resolved by making sure that are installed and in PATH environment variable." if missing_command end |
.default ⇒ Object
9 10 11 12 |
# File 'lib/base/environment.rb', line 9 def self.default @@default=Environment.new if @@default.nil? @@default end |
.dev_root ⇒ Object
Begin LEGACY support
30 31 32 |
# File 'lib/base/environment.rb', line 30 def self.dev_root default.root_dir end |
.get_version(text) ⇒ Object
203 204 205 |
# File 'lib/base/environment.rb', line 203 def self.get_version text text.match(/(\d+\.\d+\.[\d\w]+)/) end |
.linux? ⇒ Boolean
180 181 182 |
# File 'lib/base/environment.rb', line 180 def self.linux? unix? and not mac? end |
.mac? ⇒ Boolean
172 173 174 |
# File 'lib/base/environment.rb', line 172 def self.mac? (/darwin/ =~ RUBY_PLATFORM) != nil end |
.OS ⇒ Object
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/base/environment.rb', line 152 def self.OS if windows? return "windows" else if mac? return "mac" else if linux? return "linux" else return "unix" end end end end |
.unix? ⇒ Boolean
176 177 178 |
# File 'lib/base/environment.rb', line 176 def self.unix? !windows? end |
.windows? ⇒ Boolean
168 169 170 |
# File 'lib/base/environment.rb', line 168 def self.windows? Gem.win_platform? end |
Instance Method Details
#admin? ⇒ Boolean
End LEGACY support
35 36 37 38 |
# File 'lib/base/environment.rb', line 35 def admin? rights=%x[whoami /priv] return rights.include?('SeCreateGlobalPrivilege') end |
#colorize? ⇒ Boolean
119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/base/environment.rb', line 119 def colorize? colorize=true if Environment.windows? if(`gem list win32console`.include?('win32console')) require 'ansi/code' else colorize=false end end if Environment.mac? colorize=false end colorize end |
#debug? ⇒ Boolean
114 115 116 117 |
# File 'lib/base/environment.rb', line 114 def debug? return true if defined?(DEBUG) false end |
#dropbox_dir ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/base/environment.rb', line 53 def dropbox_dir dropbox_info = "#{ENV['LOCALAPPDATA']}/Dropbox/info.json" if(File.exists?(dropbox_info)) info = JSON.parse(IO.read(dropbox_info)) if(info.has_key?('personal')) if(info['personal'].has_key?('path')) return info['personal']['path'] end end end "" end |
#get_env(key) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/base/environment.rb', line 95 def get_env key if(!@env.nil? && @env.has_key?(key)) return @env[key] end value = ENV[key] if(value.nil?) if(@env_aliases.has_key?(key)) @env_aliases[key].each{|akey| value=get_env(akey) if value.nil? } end end value end |
#has_work? ⇒ Boolean
139 140 141 |
# File 'lib/base/environment.rb', line 139 def has_work? true end |
#home_dir ⇒ Object
43 44 45 |
# File 'lib/base/environment.rb', line 43 def home_dir get_env('HOME').gsub('\\','/') end |
#info ⇒ Object
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 |
# File 'lib/base/environment.rb', line 207 def info puts "Environment" puts " ruby version: #{`ruby --version`}" puts " ruby platform: #{RUBY_PLATFORM}" puts " dev_root: #{self.root_dir}" puts " machine: #{self.machine}" puts " user: #{self.user}" puts " os: #{Environment.OS}" #puts " configuration: #{self.configuration}" puts " debug: #{self.debug?}" #puts "git user.email: #{Git.user_email}" puts " " #puts "Path Commands" #['svn --version --quiet','git --version','msbuild /version','nuget','candle','light','gem --version'].each{|cmd| # command=Command.new(cmd) # command[:quiet]=true # command[:ignore_failure]=true # command.execute # if(command[:exit_code] == 0) # puts "#{cmd.split(' ')[0].fix(14)} #{Environment.get_version(command[:output])}" # else # puts "#{cmd.split(' ')[0].fix(14)} not found." # missing_command=true # end #} end |
#log_dir ⇒ Object
47 48 49 50 51 |
# File 'lib/base/environment.rb', line 47 def log_dir dir="#{root_dir}/log/#{user}@#{machine}" FileUtils.mkdir_p dir if !File.exists? dir dir end |
#machine ⇒ Object
84 85 86 87 88 89 |
# File 'lib/base/environment.rb', line 84 def machine return ENV['COMPUTERNAME'] if !ENV['COMPUTERNAME'].nil? machine = `hostname` machine = machine.split('.')[0] if machine.include?('.') return machine.strip end |
#make_dir ⇒ Object
72 73 74 75 76 |
# File 'lib/base/environment.rb', line 72 def make_dir dir="#{root_dir}/make" FileUtils.mkdir_p dir if !File.exists? dir dir end |
#out(message) ⇒ Object
143 144 145 146 |
# File 'lib/base/environment.rb', line 143 def out puts if !get_env('SUPPRESS_CONSOLE_OUTPUT') @output=@output++'\n' end |
#root_dir ⇒ Object
39 40 41 |
# File 'lib/base/environment.rb', line 39 def root_dir get_env('DEV_ROOT').gsub('\\','/') end |
#set_env(key, value) ⇒ Object
110 111 112 |
# File 'lib/base/environment.rb', line 110 def set_env key,value @env[key]=value end |
#show_success? ⇒ Boolean
148 149 150 |
# File 'lib/base/environment.rb', line 148 def show_success? true end |
#tmp_dir ⇒ Object
66 67 68 69 70 |
# File 'lib/base/environment.rb', line 66 def tmp_dir dir="#{root_dir}/tmp" FileUtils.mkdir_p dir if !File.exists? dir dir end |
#user ⇒ Object
91 92 93 |
# File 'lib/base/environment.rb', line 91 def user get_env('USERNAME') end |
#working? ⇒ Boolean
134 135 136 137 |
# File 'lib/base/environment.rb', line 134 def working? return true if Rake.application.original_dir.include? wrk_dir false end |
#wrk_dir ⇒ Object
78 79 80 81 82 |
# File 'lib/base/environment.rb', line 78 def wrk_dir dir="#{root_dir}/work" FileUtils.mkdir_p dir if !File.exists? dir dir end |