dev 2.0.268 → 2.0.269
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/dev +1 -1
- data/lib/base/array.rb +34 -4
- data/lib/base/command.rb +101 -12
- data/lib/base/dir.rb +14 -8
- data/lib/base/environment.rb +169 -52
- data/lib/base/gemspec.rb +10 -2
- data/lib/base/history.rb +26 -1
- data/lib/base/project.rb +237 -121
- data/lib/base/projects.rb +130 -66
- data/lib/base/timeout.rb +54 -16
- data/lib/base/version.rb +54 -0
- data/lib/commands.rb +4 -2
- data/lib/dev.rb +50 -44
- data/lib/tasks.rb +20 -12
- data/lib/tasks/add.rb +8 -8
- data/lib/tasks/analyze.rb +1 -1
- data/lib/tasks/build.rb +25 -9
- data/lib/tasks/commit.rb +7 -7
- data/lib/tasks/default.rb +7 -1
- data/lib/tasks/doc.rb +1 -1
- data/lib/tasks/publish.rb +7 -11
- data/lib/tasks/pull.rb +1 -4
- data/lib/tasks/push.rb +2 -2
- data/lib/tasks/setup.rb +36 -15
- data/lib/tasks/test.rb +4 -5
- data/lib/tasks/update.rb +2 -2
- metadata +5 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 0b589fd7c6e934568a25fedd9390eb9eb34c249b
         | 
| 4 | 
            +
              data.tar.gz: f3120161faf84cb33c7ecde90ca3a36f69d0e378
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 4a1005b6587fe75f6552d75f47753651b71f9968a8cfd4a75499d1252ccc4ccec35ce7599322ebb79c9d440613f337b4e65f2ec3bd215d00e5af37cceab91aae
         | 
| 7 | 
            +
              data.tar.gz: cdd95c1496bdbca9e0d5cc90fc44a252ab5b51ce391f56fd932b848044316ede3488d7332c6df9d8ab42a5426c8b2e54e2295987eb98595f491a5ae29123c46f
         | 
    
        data/bin/dev
    CHANGED
    
    
    
        data/lib/base/array.rb
    CHANGED
    
    | @@ -1,7 +1,14 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 1 | 
            +
            require_relative('environment.rb')
         | 
| 3 2 | 
             
            class Array
         | 
| 3 | 
            +
                attr_accessor :env
         | 
| 4 | 
            +
                def intialize env=nil
         | 
| 5 | 
            +
                  @env=env
         | 
| 6 | 
            +
                  @env=Environment.new() if @env.nil? 
         | 
| 7 | 
            +
                  @env=Environmnet.new() if !@env.kind_of?(Environment)
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
             | 
| 4 10 | 
             
                def execute value=nil
         | 
| 11 | 
            +
                  @env=Environment.new() if @env.nil? 
         | 
| 5 12 | 
             
                  i=0
         | 
| 6 13 | 
             
                  while i < self.length
         | 
| 7 14 | 
             
                    self[i]=Command.new(self[i]) if(self[i].is_a?(String))
         | 
| @@ -11,13 +18,36 @@ class Array | |
| 11 18 | 
             
                      value.each{|k,v|self[i][k]=v}
         | 
| 12 19 | 
             
                    end
         | 
| 13 20 |  | 
| 14 | 
            -
                    self[i].execute if(self[i].is_a?(Command))
         | 
| 21 | 
            +
                    #self[i].execute if(self[i].is_a?(Command))
         | 
| 22 | 
            +
                    if(self[i].is_a?(Command))
         | 
| 23 | 
            +
                      self[i].execute
         | 
| 24 | 
            +
                      @env.out self[i].summary
         | 
| 25 | 
            +
                    end
         | 
| 26 | 
            +
             | 
| 15 27 | 
             
                    i=i+1
         | 
| 16 28 | 
             
                  end
         | 
| 17 29 | 
             
                end
         | 
| 18 30 |  | 
| 19 31 | 
             
                def add command
         | 
| 20 | 
            -
                  self << command if | 
| 32 | 
            +
                  self << command if !has_command? command
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                def has_command? command
         | 
| 36 | 
            +
                  return true if(command.kind_of?(String) && !include?(command))
         | 
| 37 | 
            +
                  if(command.kind_of?(Command))
         | 
| 38 | 
            +
                    self.each{|c|
         | 
| 39 | 
            +
                       return true if(c[:input] == command[:input])
         | 
| 40 | 
            +
                    }
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
                  false
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                def add_quiet command
         | 
| 46 | 
            +
                  add Command.new({ :input => command, :quiet => true })
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                def add_passive command
         | 
| 50 | 
            +
                  add Command.new({ :input => command, :quiet => true, :ignore_failure => true })
         | 
| 21 51 | 
             
                end
         | 
| 22 52 |  | 
| 23 53 | 
             
                def to_html
         | 
    
        data/lib/base/command.rb
    CHANGED
    
    | @@ -1,10 +1,12 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 1 | 
            +
            require 'time'
         | 
| 3 2 | 
             
            require 'open3'
         | 
| 4 3 | 
             
            require_relative('timeout.rb')
         | 
| 5 4 | 
             
            require_relative('timer.rb')
         | 
| 6 5 | 
             
            require_relative('array.rb')
         | 
| 7 6 | 
             
            require_relative('hash.rb')
         | 
| 7 | 
            +
            require_relative('string.rb')
         | 
| 8 | 
            +
            require_relative('environment.rb')
         | 
| 9 | 
            +
            require_relative('dir.rb')
         | 
| 8 10 | 
             
            BUFFER_SIZE=1024 if(!defined?(BUFFER_SIZE))
         | 
| 9 11 |  | 
| 10 12 | 
             
            # = Command
         | 
| @@ -51,6 +53,10 @@ class Command < Hash | |
| 51 53 | 
             
                end
         | 
| 52 54 | 
             
            	end
         | 
| 53 55 |  | 
| 56 | 
            +
              def save filename
         | 
| 57 | 
            +
                File.open(filename,'w'){|f|f.write(to_json)}
         | 
| 58 | 
            +
              end
         | 
| 59 | 
            +
             | 
| 54 60 | 
             
              def open filename=''
         | 
| 55 61 | 
             
                @filename=filename if filename.length > 0
         | 
| 56 62 | 
             
                self.clear
         | 
| @@ -63,6 +69,17 @@ class Command < Hash | |
| 63 69 | 
             
                (self.has_key?(:quiet) && self[:quiet])
         | 
| 64 70 | 
             
              end
         | 
| 65 71 |  | 
| 72 | 
            +
              def exit_code
         | 
| 73 | 
            +
                self[:exit_code]
         | 
| 74 | 
            +
              end
         | 
| 75 | 
            +
             | 
| 76 | 
            +
              def output
         | 
| 77 | 
            +
                self[:output]
         | 
| 78 | 
            +
              end
         | 
| 79 | 
            +
              def error
         | 
| 80 | 
            +
                self[:error]
         | 
| 81 | 
            +
              end
         | 
| 82 | 
            +
             | 
| 66 83 | 
             
            	def execute value=nil
         | 
| 67 84 |  | 
| 68 85 | 
             
                if(!value.nil? && value.is_a?(Hash))
         | 
| @@ -105,11 +122,14 @@ class Command < Hash | |
| 105 122 | 
             
                			  self[:elapsed] = timer.elapsed_str
         | 
| 106 123 | 
             
                			  self[:end_time] = Time.now
         | 
| 107 124 | 
             
                      else
         | 
| 125 | 
            +
                        #puts "command execute with timeout #{self[:timeout]}"
         | 
| 108 126 | 
             
                        require_relative 'timeout.rb'
         | 
| 109 127 | 
             
                        result=run_with_timeout(self[:directory],self[:input], self[:timeout],2)
         | 
| 128 | 
            +
                        #puts "result #{result}"
         | 
| 110 129 | 
             
                        self[:output]=result[0]
         | 
| 111 | 
            -
                        self[: | 
| 112 | 
            -
                        self[: | 
| 130 | 
            +
                        self[:exit_code]=result[1]
         | 
| 131 | 
            +
                        #self[:error]=result[1]
         | 
| 132 | 
            +
                        #self[:exit_code]=result[2]
         | 
| 113 133 |  | 
| 114 134 | 
             
                        self[:elapsed] = timer.elapsed_str
         | 
| 115 135 | 
             
                        self[:end_time] = Time.now
         | 
| @@ -174,10 +194,19 @@ class Command < Hash | |
| 174 194 | 
             
                 return dir
         | 
| 175 195 | 
             
                end
         | 
| 176 196 |  | 
| 197 | 
            +
                #def self.execute_quiet command
         | 
| 198 | 
            +
                #  cmd=Command.new({ :input => command, :quiet => true, :ignore_failure => true})
         | 
| 199 | 
            +
                #  cmd.execute
         | 
| 200 | 
            +
                #  cmd
         | 
| 201 | 
            +
                #end
         | 
| 202 | 
            +
             | 
| 177 203 | 
             
                def self.execute command
         | 
| 178 | 
            -
                  cmd = Command.new(command)
         | 
| 204 | 
            +
                  cmd = Command.new({ :input => command, :quiet => true}) if command.kind_of?(String)
         | 
| 205 | 
            +
                  cmd = command if command.kind_of?(Command)
         | 
| 206 | 
            +
                  cmd = Command.new(command) if command.kind_of?(Hash)
         | 
| 179 207 | 
             
                  cmd.execute
         | 
| 180 208 | 
             
                  cmd[:exit_code]
         | 
| 209 | 
            +
                  cmd
         | 
| 181 210 | 
             
                end
         | 
| 182 211 |  | 
| 183 212 | 
             
                def self.exit_code command
         | 
| @@ -205,17 +234,77 @@ class Command < Hash | |
| 205 234 | 
             
                end
         | 
| 206 235 |  | 
| 207 236 | 
             
                def getFormattedTimeSpan timespan
         | 
| 237 | 
            +
                  result=''
         | 
| 208 238 | 
             
                  seconds = timespan.round
         | 
| 209 | 
            -
                  seconds | 
| 239 | 
            +
                  if(seconds > 99)
         | 
| 240 | 
            +
                    minutes=(seconds/60).round
         | 
| 241 | 
            +
                    result="#{minutes}m"
         | 
| 242 | 
            +
                  else
         | 
| 243 | 
            +
                    result="#{seconds}s" # 99s 
         | 
| 244 | 
            +
                  end
         | 
| 245 | 
            +
                  result.fix(3)
         | 
| 210 246 | 
             
                end
         | 
| 211 247 |  | 
| 212 | 
            -
                def summary
         | 
| 248 | 
            +
                def summary include_directory=false
         | 
| 213 249 | 
             
                  duration=""
         | 
| 214 | 
            -
                  duration=getFormattedTimeSpan(self[:end_time]-self[:start_time]) | 
| 215 | 
            -
                   | 
| 216 | 
            -
             | 
| 217 | 
            -
             | 
| 218 | 
            -
             | 
| 250 | 
            +
                  duration=getFormattedTimeSpan(self[:end_time]-self[:start_time])
         | 
| 251 | 
            +
                  if(Environment.default.colorize?)
         | 
| 252 | 
            +
                    require 'ansi/code'
         | 
| 253 | 
            +
                    cduration = ANSI.reset + duration
         | 
| 254 | 
            +
                    #code=ANSI.green + '+ ' + ANSI.reset
         | 
| 255 | 
            +
                    #code=ANSI.red   + '- ' + ANSI.reset if exit_code != 0
         | 
| 256 | 
            +
                    cinput = ANSI.reset + self[:input] + ANSI.reset
         | 
| 257 | 
            +
                    cinput = ANSI.red   + self[:input] + ANSI.reset if exit_code != 0
         | 
| 258 | 
            +
                    cdirectory = ''
         | 
| 259 | 
            +
                    cdirectory = "(#{self[:directory]})" if include_directory
         | 
| 260 | 
            +
                    "  #{cduration} #{cinput} #{cdirectory}"
         | 
| 261 | 
            +
                  else
         | 
| 262 | 
            +
                    code=' '
         | 
| 263 | 
            +
                    code='X' if exit_code != 0
         | 
| 264 | 
            +
                    sdirectory = ''
         | 
| 265 | 
            +
                    sdirectory = "(#{self[:directory]})" if include_directory
         | 
| 266 | 
            +
                    "#{code} #{duration} #{self[:input]} #{sdirectory}"
         | 
| 267 | 
            +
                  end
         | 
| 268 | 
            +
                end
         | 
| 269 | 
            +
             | 
| 270 | 
            +
                def format_property name,value
         | 
| 271 | 
            +
                    if(Environment.default.colorize?)
         | 
| 272 | 
            +
                        require 'ansi/code'
         | 
| 273 | 
            +
                        return "#{name}: " + ANSI.yellow + ANSI.bright + value.to_s.strip + ANSI.reset
         | 
| 274 | 
            +
                    else
         | 
| 275 | 
            +
                        return "#{name}: #{value}"
         | 
| 276 | 
            +
                    end
         | 
| 277 | 
            +
                end 
         | 
| 278 | 
            +
             | 
| 279 | 
            +
                def info 
         | 
| 280 | 
            +
                  result=format_property('input'.fix(15),self[:input]) + "\n"
         | 
| 281 | 
            +
                  result=result + format_property('directory'.fix(15),self[:directory])  + "\n"
         | 
| 282 | 
            +
                  result=result + format_property('exit_code'.fix(15),self[:exit_code]) + "\n"
         | 
| 283 | 
            +
                  result=result + format_property('duration'.fix(15),getFormattedTimeSpan(self[:end_time]-self[:start_time])) + "\n"
         | 
| 284 | 
            +
                  output=['']
         | 
| 285 | 
            +
                  output=self[:output].strip.split("\n") if !self[:output].nil?
         | 
| 286 | 
            +
                  if(output.length <= 1)
         | 
| 287 | 
            +
                    result=result + format_property('output'.fix(15),output[0]) + "\n" 
         | 
| 288 | 
            +
                    #result=result + format_property('output'.fix(15),'') + "\n" if(output.length==0)
         | 
| 289 | 
            +
                    #result=result + format_property('output'.fix(15),output) + "\n" if(output.length==1)
         | 
| 290 | 
            +
                  else
         | 
| 291 | 
            +
                    result=result + format_property('output'.fix(15),'') + "\n"
         | 
| 292 | 
            +
                    output.each{|line|
         | 
| 293 | 
            +
                      result=result + ' '.fix(16) + line + "\n"
         | 
| 294 | 
            +
                    }
         | 
| 295 | 
            +
                  end
         | 
| 296 | 
            +
                  error=['']
         | 
| 297 | 
            +
                  error=self[:error].strip.split("\n") if !self[:error].nil?
         | 
| 298 | 
            +
                  if(error.length <= 1) 
         | 
| 299 | 
            +
                    result=result + format_property('error'.fix(15),error[0]) + "\n"
         | 
| 300 | 
            +
                    #result=result + format_property('error'.fix(15),'') + "\n" if(error.length==0)
         | 
| 301 | 
            +
                    #result=result + format_property('error'.fix(15),error) + "\n" if(error.length==1)
         | 
| 302 | 
            +
                  else
         | 
| 303 | 
            +
                    result=result + format_property('error'.fix(15),'') + "\n"
         | 
| 304 | 
            +
                    error.each{|line|
         | 
| 305 | 
            +
                      result=result + ' '.fix(16) + line + "\n"
         | 
| 306 | 
            +
                    }
         | 
| 307 | 
            +
                  end
         | 
| 219 308 | 
             
                end
         | 
| 220 309 |  | 
| 221 310 | 
             
                def to_html
         | 
    
        data/lib/base/dir.rb
    CHANGED
    
    | @@ -1,18 +1,24 @@ | |
| 1 | 
            -
            puts __FILE__ if defined?(DEBUG)
         | 
| 2 | 
            -
             | 
| 3 1 | 
             
            require 'fileutils'
         | 
| 4 2 |  | 
| 5 3 | 
             
            class Dir
         | 
| 6 4 | 
             
              def self.make directory
         | 
| 7 5 | 
             
              	FileUtils.mkdir_p directory if !File.exists? directory
         | 
| 8 6 | 
             
              end
         | 
| 9 | 
            -
              def self.remove directory
         | 
| 10 | 
            -
                 | 
| 11 | 
            -
                   | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 7 | 
            +
              def self.remove directory, remove_empty_parents=false
         | 
| 8 | 
            +
                begin
         | 
| 9 | 
            +
                  FileUtils.rm_rf directory if(!Dir.empty?(directory))
         | 
| 10 | 
            +
                  FileUtils.rm_r directory  if(File.exists?(directory))
         | 
| 11 | 
            +
                  if(remove_empty_parents)
         | 
| 12 | 
            +
                    parent_dir=File.dirname(directory)
         | 
| 13 | 
            +
                    Dir.remove parent_dir, true if(Dir.empty?(parent_dir))
         | 
| 15 14 | 
             
                  end
         | 
| 15 | 
            +
                rescue
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
              def self.empty? directory
         | 
| 19 | 
            +
                if((Dir.entries(directory) - %w{ . .. }).empty?)
         | 
| 20 | 
            +
                  return true
         | 
| 16 21 | 
             
                end
         | 
| 22 | 
            +
                false
         | 
| 17 23 | 
             
              end
         | 
| 18 24 | 
             
            end
         | 
    
        data/lib/base/environment.rb
    CHANGED
    
    | @@ -3,60 +3,177 @@ puts __FILE__ if defined?(DEBUG) | |
| 3 3 | 
             
            require_relative('string.rb')
         | 
| 4 4 |  | 
| 5 5 | 
             
            class Environment < Hash
         | 
| 6 | 
            +
              attr_accessor :output
         | 
| 7 | 
            +
              @@default=nil
         | 
| 8 | 
            +
              def self.default
         | 
| 9 | 
            +
                @@default=Environment.new if @@default.nil?
         | 
| 10 | 
            +
                @@default
         | 
| 11 | 
            +
              end
         | 
| 6 12 |  | 
| 7 | 
            -
               | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 13 | 
            +
              def initialize env=nil
         | 
| 14 | 
            +
                @output=''
         | 
| 15 | 
            +
                @env=Hash.new
         | 
| 16 | 
            +
                @env_aliases={'HOME' => ['USERPROFILE'],
         | 
| 17 | 
            +
                              'DEV_ROOT' => ['DEV_HOME','HOME','USERPROFILE'],
         | 
| 18 | 
            +
                              'USERNAME' => ['USER','USR']
         | 
| 19 | 
            +
                }
         | 
| 20 | 
            +
                env.each{|k,v| @env[k.to_s]=v} if !env.nil?
         | 
| 21 | 
            +
                @@default=self if @@default.nil?
         | 
| 22 | 
            +
              end
         | 
| 10 23 |  | 
| 11 | 
            -
               | 
| 12 | 
            -
             | 
| 13 | 
            -
                 | 
| 14 | 
            -
                self[:user]=Environment.user
         | 
| 24 | 
            +
              #####Begin LEGACY support
         | 
| 25 | 
            +
              def self.dev_root
         | 
| 26 | 
            +
                default.root_dir
         | 
| 15 27 | 
             
              end
         | 
| 16 28 |  | 
| 17 | 
            -
               | 
| 18 | 
            -
             | 
| 19 | 
            -
                 | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 29 | 
            +
              #####End LEGACY support
         | 
| 30 | 
            +
              def root_dir
         | 
| 31 | 
            +
                get_env('DEV_ROOT')
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
             
         | 
| 34 | 
            +
              def home_dir
         | 
| 35 | 
            +
                get_env('HOME')
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              def log_dir
         | 
| 39 | 
            +
                dir="#{get_env('DEV_ROOT')}/log/#{user}@#{machine}"
         | 
| 40 | 
            +
                FileUtils.mkdir_p dir if !File.exists? dir
         | 
| 41 | 
            +
                dir
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              def make_dir
         | 
| 45 | 
            +
                dir="#{get_env('DEV_ROOT')}/make"
         | 
| 46 | 
            +
                FileUtils.mkdir_p dir if !File.exists? dir
         | 
| 47 | 
            +
                dir
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              def publish_dir
         | 
| 51 | 
            +
                dir="#{get_env('DEV_ROOT')}/publish"
         | 
| 52 | 
            +
                FileUtils.mkdir_p dir if !File.exists? dir
         | 
| 53 | 
            +
                dir
         | 
| 54 | 
            +
              end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
              def wrk_dir
         | 
| 57 | 
            +
                dir="#{get_env('DEV_ROOT')}/wrk"
         | 
| 58 | 
            +
                FileUtils.mkdir_p dir if !File.exists? dir
         | 
| 59 | 
            +
                dir
         | 
| 60 | 
            +
              end
         | 
| 61 | 
            +
             | 
| 62 | 
            +
              def machine
         | 
| 63 | 
            +
                return ENV['COMPUTERNAME'] if !ENV['COMPUTERNAME'].nil? 
         | 
| 64 | 
            +
                machine = `hostname`
         | 
| 65 | 
            +
                machine = machine.split('.')[0] if machine.include?('.')
         | 
| 66 | 
            +
                return machine.strip
         | 
| 67 | 
            +
              end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
              def user
         | 
| 70 | 
            +
                get_env('USERNAME')
         | 
| 71 | 
            +
                #return ENV['USER'] if !ENV['USER'].nil?  #on Unix
         | 
| 72 | 
            +
                #ENV['USERNAME']
         | 
| 73 | 
            +
              end
         | 
| 74 | 
            +
             | 
| 75 | 
            +
              def get_env key
         | 
| 76 | 
            +
                if(!@env.nil? && @env.has_key?(key))
         | 
| 77 | 
            +
                  return @env[key] 
         | 
| 78 | 
            +
                  end
         | 
| 79 | 
            +
                value = ENV[key]
         | 
| 80 | 
            +
                if(value.nil?)
         | 
| 81 | 
            +
                  if(@env_aliases.has_key?(key))
         | 
| 82 | 
            +
                    @env_aliases[key].each{|akey|
         | 
| 83 | 
            +
                      value=get_env(akey) if value.nil?
         | 
| 84 | 
            +
                    }
         | 
| 85 | 
            +
                  end
         | 
| 24 86 | 
             
                end
         | 
| 87 | 
            +
                value
         | 
| 25 88 | 
             
              end
         | 
| 26 89 |  | 
| 27 | 
            -
              def  | 
| 28 | 
            -
                 | 
| 90 | 
            +
              def set_env key,value
         | 
| 91 | 
            +
                @env[key]=value
         | 
| 29 92 | 
             
              end
         | 
| 30 93 |  | 
| 31 | 
            -
              def  | 
| 32 | 
            -
                 | 
| 33 | 
            -
             | 
| 34 | 
            -
                }
         | 
| 35 | 
            -
                dir="~"
         | 
| 36 | 
            -
                dir=ENV["HOME"] unless ENV["HOME"].nil?
         | 
| 37 | 
            -
                dir=ENV["USERPROFILE"].gsub('\\','/') unless ENV["USERPROFILE"].nil?
         | 
| 38 | 
            -
                return dir
         | 
| 94 | 
            +
              def debug?
         | 
| 95 | 
            +
                return true if get_env('DEBUG')=='true'
         | 
| 96 | 
            +
                false
         | 
| 39 97 | 
             
              end
         | 
| 40 98 |  | 
| 41 | 
            -
              def  | 
| 42 | 
            -
                 | 
| 43 | 
            -
                if | 
| 44 | 
            -
                   | 
| 45 | 
            -
             | 
| 99 | 
            +
              def colorize?
         | 
| 100 | 
            +
                colorize=true
         | 
| 101 | 
            +
                if windows?
         | 
| 102 | 
            +
                  if(`gem list win32console`.include?('win32console'))
         | 
| 103 | 
            +
                    require 'ansi/code'
         | 
| 104 | 
            +
                  else
         | 
| 105 | 
            +
                    colorize=false
         | 
| 106 | 
            +
                  end
         | 
| 46 107 | 
             
                end
         | 
| 47 | 
            -
                 | 
| 108 | 
            +
                colorize
         | 
| 109 | 
            +
              end
         | 
| 110 | 
            +
             | 
| 111 | 
            +
              def out message
         | 
| 112 | 
            +
                  puts message if !get_env('SUPPRESS_CONSOLE_OUTPUT')
         | 
| 113 | 
            +
                  @output=@output+message+'\n'
         | 
| 48 114 | 
             
              end
         | 
| 49 115 |  | 
| 50 | 
            -
              def  | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
            	 end
         | 
| 116 | 
            +
              def show_success?
         | 
| 117 | 
            +
                true
         | 
| 118 | 
            +
              end
         | 
| 54 119 |  | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
            	 return machine.strip
         | 
| 120 | 
            +
              def windows?
         | 
| 121 | 
            +
                Gem.win_platform?
         | 
| 58 122 | 
             
              end
         | 
| 59 123 |  | 
| 124 | 
            +
              #@@debug=true if defined?(DEBUG)
         | 
| 125 | 
            +
              #@@debug=false if !defined?(DEBUG)
         | 
| 126 | 
            +
              #@@development_root=nil
         | 
| 127 | 
            +
             | 
| 128 | 
            +
              #def initialize
         | 
| 129 | 
            +
                #self[:home]=Environment.home
         | 
| 130 | 
            +
                #self[:machine]=Environment.machine
         | 
| 131 | 
            +
                #self[:user]=Environment.user
         | 
| 132 | 
            +
              #end
         | 
| 133 | 
            +
             | 
| 134 | 
            +
              #def self.set_development_root value
         | 
| 135 | 
            +
              #  @@development_root=value
         | 
| 136 | 
            +
              #  if(!value.nil?)
         | 
| 137 | 
            +
              #    FileUtils.mkdir_p value if(!File.exists?(value))
         | 
| 138 | 
            +
              #    ['bin','data','log','make','publish','test'].each{|dir|
         | 
| 139 | 
            +
              #      #FileUtils.mkdir_p("#{value}/#{dir}") if !File.exists? "#{value}/#{dir}"
         | 
| 140 | 
            +
              #    }
         | 
| 141 | 
            +
              #  end
         | 
| 142 | 
            +
              #end
         | 
| 143 | 
            +
             | 
| 144 | 
            +
              #def self.debug
         | 
| 145 | 
            +
              #  @@debug
         | 
| 146 | 
            +
              #end
         | 
| 147 | 
            +
             | 
| 148 | 
            +
              #def self.home 
         | 
| 149 | 
            +
              #  ["USERPROFILE","HOME"].each {|v|
         | 
| 150 | 
            +
              #    return ENV[v].gsub('\\','/') unless ENV[v].nil?
         | 
| 151 | 
            +
              #  }
         | 
| 152 | 
            +
              #  dir="~"
         | 
| 153 | 
            +
              #  dir=ENV["HOME"] unless ENV["HOME"].nil?
         | 
| 154 | 
            +
              #  dir=ENV["USERPROFILE"].gsub('\\','/') unless ENV["USERPROFILE"].nil?
         | 
| 155 | 
            +
              #  return dir
         | 
| 156 | 
            +
              #end
         | 
| 157 | 
            +
             | 
| 158 | 
            +
              #def self.configuration
         | 
| 159 | 
            +
              #  config="#{Environment.home}/dev.config.rb"
         | 
| 160 | 
            +
              #  if(!File.exists?(config))
         | 
| 161 | 
            +
              #    text=IO.read("#{File.dirname(__FILE__)}/../dev.config.rb")
         | 
| 162 | 
            +
              #    File.open(config,'w'){|f|f.write(text)}
         | 
| 163 | 
            +
              #  end
         | 
| 164 | 
            +
              #  config
         | 
| 165 | 
            +
              #end
         | 
| 166 | 
            +
             | 
| 167 | 
            +
              #def self.machine
         | 
| 168 | 
            +
              #   if !ENV['COMPUTERNAME'].nil? 
         | 
| 169 | 
            +
            	#   return ENV['COMPUTERNAME']
         | 
| 170 | 
            +
            	# end
         | 
| 171 | 
            +
             | 
| 172 | 
            +
              #   machine = `hostname`
         | 
| 173 | 
            +
              #   machine = machine.split('.')[0] if machine.include?('.')
         | 
| 174 | 
            +
            	# return machine.strip
         | 
| 175 | 
            +
              #end
         | 
| 176 | 
            +
             | 
| 60 177 | 
             
              def self.remove directory
         | 
| 61 178 | 
             
                if(File.exists?(directory))
         | 
| 62 179 | 
             
                  begin
         | 
| @@ -67,21 +184,21 @@ class Environment < Hash | |
| 67 184 | 
             
                end
         | 
| 68 185 | 
             
              end
         | 
| 69 186 |  | 
| 70 | 
            -
              def self.user
         | 
| 71 | 
            -
             | 
| 72 | 
            -
             | 
| 73 | 
            -
              end
         | 
| 187 | 
            +
              #def self.user
         | 
| 188 | 
            +
             # 	return ENV['USER'] if !ENV['USER'].nil?  #on Unix
         | 
| 189 | 
            +
             #   ENV['USERNAME']
         | 
| 190 | 
            +
              #end
         | 
| 74 191 |  | 
| 75 | 
            -
              def self.dev_root
         | 
| 76 | 
            -
             | 
| 77 | 
            -
             | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 80 | 
            -
             | 
| 81 | 
            -
             | 
| 82 | 
            -
             | 
| 83 | 
            -
             | 
| 84 | 
            -
              end
         | 
| 192 | 
            +
              #def self.dev_root
         | 
| 193 | 
            +
              #  if(!@@development_root.nil?)
         | 
| 194 | 
            +
              #    return @@development_root
         | 
| 195 | 
            +
              #  end
         | 
| 196 | 
            +
              #  ["DEV_HOME","DEV_ROOT"].each {|v|
         | 
| 197 | 
            +
              #    return ENV[v].gsub('\\','/') unless ENV[v].nil?
         | 
| 198 | 
            +
              #  }
         | 
| 199 | 
            +
              #  dir=home
         | 
| 200 | 
            +
              # return dir
         | 
| 201 | 
            +
              #end
         | 
| 85 202 |  | 
| 86 203 | 
             
              def self.check
         | 
| 87 204 | 
             
                puts 'checking commands...'
         | 
| @@ -132,7 +249,7 @@ class Environment < Hash | |
| 132 249 | 
             
              end
         | 
| 133 250 |  | 
| 134 251 | 
             
              def self.get_latest_mtime directory
         | 
| 135 | 
            -
                mtime= | 
| 252 | 
            +
                mtime=Time.new(1980)
         | 
| 136 253 | 
             
                Dir.chdir(directory)  do
         | 
| 137 254 | 
             
                  Dir.glob('**/*.*').each{|f|
         | 
| 138 255 | 
             
                    mtime=File.mtime(f) if mtime.nil? || File.mtime(f) > mtime
         |