dev 1.0.247 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/dev/Deps.rb DELETED
@@ -1,44 +0,0 @@
1
- module Dev
2
- class Deps < Hash
3
- def refresh
4
- puts_debug "Dev::Deps.refresh"
5
- start_time=Time.now
6
- self.each{ |k,v|
7
- if !v.nil? && v.kind_of?(Hash)
8
- v[:dir]=get_dir(v) if !v.has_key?(:dir)
9
- v[:rev]=get_rev(v) if !v.has_key?(:rev) && !get_rev(v).nil?
10
- v[:uri]=get_uri(v)
11
- end
12
- }
13
- puts_debug "Deps refresh elapsed time " + (Time.now-start_time).to_s
14
- end
15
-
16
- def get_dir(h)
17
- uri=Dev::Environment.expand_string_variables(h[:uri])
18
- uri_words=uri.split('/')
19
- while(uri_words.length > 3) do
20
- uri_words.shift
21
- end
22
- return uri_words.join('/')
23
- end
24
-
25
- def get_rev(h)
26
- if(h.has_key?(:uri) && h[:uri].include?('@') && !h[:uri].include?("@REV"))
27
- return h[:uri].split('@')[1]
28
- end
29
- if(h.has_key?(:dir) && h[:dir].include?('@') && !h[:dir].include?("@REV"))
30
- return h[:dir].split('@')[1]
31
- end
32
- nil
33
- end
34
-
35
- def get_uri(h)
36
- uri=h[:uri]
37
- if(uri.include?("@REV") && h.has_key?(:rev) && !h[:rev].nil?)
38
- uri=uri.gsub("@REV","@#{h[:rev]}")
39
- end
40
- return uri
41
- end
42
-
43
- end # class Deps
44
- end # module Dev
@@ -1,142 +0,0 @@
1
- puts_debug "read " + __FILE__
2
-
3
- module Dev
4
-
5
- class Environment
6
- def self.replace_text_in_glob(glob,search,replace)
7
- Dir.glob(glob).each{ |f| replace_text_in_file(f,search,replace) }
8
- end
9
-
10
- def self.copy_from_template(source_directory,target_directory,glob_pattern,search,replace)
11
- Dir.chdir(source_directory) do
12
- Dir.glob("**/*") {|f|
13
- if(!File.directory?(f))
14
- target_file = target_directory + "/" + f.gsub(search,replace)
15
- if(!File.exist?(target_file))
16
- FileUtils.mkdir_p(File.dirname(target_file)) if(!Dir.exist?(File.dirname(target_file)))
17
- FileUtils.cp(f,target_file)
18
- end
19
- end
20
- }
21
- end
22
- Dir.glob(glob_pattern) { |f|
23
- Dev::Environment::replace_text_in_file(f,search,replace)
24
- }
25
- end
26
-
27
- def self.replace_text_in_file(filename,search,replace)
28
- puts_debug "replace_text_in_file(#{filename},#{search.to_s},#{replace.to_s})"
29
- text1 = File.read(filename)
30
- text2 = text1.gsub(search) { |str| str=replace }
31
- unless text1==text2
32
- File.open(filename,"w") { |f| f.puts text2 }
33
- puts " replaced text in #{filename}"
34
- end
35
- end
36
-
37
- def self.user_profile
38
- ["USERPROFILE","HOME"].each {|v|
39
- return ENV[v].gsub('\\','/') unless ENV[v].nil?
40
- }
41
- dir="~"
42
- end
43
-
44
- def self.dev_root
45
- ["DEV_HOME","DEV_ROOT","USERPROFILE","HOME"].each {|v|
46
- return ENV[v].gsub('\\','/') unless ENV[v].nil?
47
- }
48
- dir="~"
49
- dir=ENV["HOME"] unless ENV["HOME"].nil?
50
- dir=ENV["USERPROFILE"].gsub('\\','/') unless ENV["USERPROFILE"].nil?
51
- dir=ENV["DEV_ROOT"].gsub('\\','/') unless ENV["DEV_ROOT"].nil?
52
-
53
- return dir if(RUBY_VERSION == "1.8.7")
54
-
55
- # reg_exp = /(\/(wrk|dep|exp)\/[.\w\d-]+\/[.\w\d-]+\/[.\w\d-@]+)/ if(RUBY_VERSION != "1.8.6")
56
- # unless(Rake.original_dir().match(reg_exp).nil?)
57
- # wrk_rel = Rake.original_dir().match(reg_exp)[1] if Rake.original_dir().match(reg_exp).length > 0
58
- # if(!wrk_rel.nil? && wrk_rel.length > 0)
59
- # dir = Rake.original_dir().gsub(wrk_rel,"");
60
- # return dir
61
- # end
62
-
63
- # reg_exp = /(\/(Dropbox)\/[.\w\d-]+\/[.\w\d-]+\/[.\w\d-@]+)/
64
- # unless(Rake.original_dir().match(reg_exp).nil?)
65
- # wrk_rel = Rake.original_dir().match(reg_exp)[1] if Rake.original_dir().match(reg_exp).length > 0
66
- # if(!wrk_rel.nil? && wrk_rel.length > 0)
67
- # dir = Rake.original_dir().gsub(wrk_rel,"");
68
- # return dir
69
- # end
70
- # end
71
-
72
- #end
73
- return dir
74
- end
75
-
76
- def self.expand_string_variables(str)
77
- eval("\"#{str.gsub('"','\"')}\"")
78
- end
79
-
80
- def self.s_to_hash(str)
81
- # check for hash
82
- hash=nil
83
- if(str.strip.index('{')==0 && str.strip.index('}')==str.strip.length-1)
84
- begin
85
- eval("hash=#{str.strip}")
86
- rescue
87
- hash=nil
88
- end
89
- end
90
- hash
91
- end
92
-
93
- def self.user
94
- return ENV['USER'] if !ENV['USER'].nil? #on Unix
95
- return ENV['USERNAME'] if !ENV['USERNAME'].nil? #on Windows
96
- return "unknown"
97
- end
98
-
99
- def self.machine
100
- if !ENV['COMPUTERNAME'].nil?
101
- return ENV['COMPUTERNAME']
102
- end
103
-
104
- machine = `hostname`
105
- machine = machine.split('.')[0] if machine.include?('.')
106
- return machine.strip
107
- #return "unknown"
108
- end
109
- def self.expand_command(command); Dev::Environment.expand_project_variables(command); end
110
- def self.expand_project_variables(str)
111
- if str.kind_of?(Hash)
112
- expandedHash = Hash.new
113
- str.each do |name,value|
114
- expandedHash[name]=expand_project_variables(value)
115
- end
116
- return expandedHash
117
- end
118
-
119
- if str.kind_of?(Array)
120
- expandedArray= Array.new
121
- str.each{|e|expandedArray << expand_project_variable(e) }
122
- return expandedArray
123
- end
124
-
125
- if str.kind_of?(String)
126
- result=Dev::Environment.expand_string_variables(str) # expands ruby variables, e.g. '#{name}' to 'widget'
127
- if result.include?('<') && result.include?('>')
128
- result.scan(/(<[\w,]+>)/).each { |pvar| # expand project variables, e.g. '<name>' to 'widget
129
- key = pvar[0].gsub("<","").gsub(">","") # '<paths,nunit>' to 'C:/wherever/NUnit.exe'
130
- value=DEV.get_value(key)
131
- result = result.gsub(pvar[0],value)
132
- }
133
- end
134
- return result
135
- end
136
-
137
- return str
138
- end
139
- end
140
-
141
- end # module Dev
142
-
data/lib/dev/Hash.rb DELETED
@@ -1,92 +0,0 @@
1
- class Hash
2
-
3
- # remove all auto generated entries
4
- def strip_auto_entries
5
- self.each { |k,v| self.delete k if !v.nil? && v.kind_of?(Hash) && v.has_key?(:auto) && v[:auto] }
6
- end
7
-
8
- def get_value(key)
9
- return Hash.get_hash_value(self,key)
10
- end
11
-
12
- def set_value(key,value)
13
- Hash.set_hash_value(self,key,value)
14
- end
15
-
16
- def self.get_hash_value(hash,key)
17
- return hash[key] if(hash.has_key?(key))
18
- if key.kind_of?(String)
19
- if key.include?(',')
20
- keys=key.split(',')
21
- value=get_hash_value(hash,keys.shift)
22
- unless value.nil?
23
- if value.kind_of?(Hash)
24
- return Hash.get_hash_value(value,keys.join(','))
25
- end
26
- end
27
- else
28
- value=nil
29
- ruby="value=hash[:#{key}]"
30
- eval(ruby)
31
- return value
32
- end
33
- end
34
- nil
35
- end
36
-
37
- def self.set_hash_value(hash,key,value)
38
- if key.kind_of?(String)
39
- if key.include?(',')
40
- keys=key.split(',')
41
- hval=get_hash_value(hash,keys[0])
42
- if(hval.nil?)
43
- ruby="hash[:#{keys[0]}]=Hash.new"
44
- eval(ruby)
45
- end
46
- hval=get_hash_value(hash,keys[0])
47
- if hval.kind_of?(Hash)
48
- keys.shift
49
- if keys.length == 1
50
- Hash.set_hash_value(hval,keys[0],value)
51
- else
52
- Hash.set_hash_value(hval,keys.join(','),value)
53
- end
54
- end
55
- else
56
- eval("hash[:#{key}]=value")
57
- end
58
- else
59
- hash[key]=value
60
- end
61
- end
62
-
63
- def self.print_hash(indent,hash)
64
- max_length=0
65
- hash.each { |name,value| max_length=name.to_s.length if name.to_s.length > max_length }
66
- max_length=max_length+1
67
- index=0
68
- hash.each do |name,value|
69
-
70
- prefix = "#{indent}#{name.to_s}".rjust(max_length)
71
- if value.kind_of?(Hash)
72
- print_hash(prefix+",",value)
73
- elsif value.kind_of?(Array)
74
- value.each do |v|
75
- if v.kind_of?(Hash)
76
- #puts Rainbow(prefix).foreground(:yellow).bright
77
- puts prefix
78
- print_hash( prefix + " ".rjust(max_length),v)
79
- end
80
- puts prefix + " " + v.to_s if v.kind_of?(String)
81
- #puts Rainbow(prefix).foreground(:yellow).bright + " " + Rainbow(v.to_s).foreground(:green) if v.kind_of?(String)
82
- prefix = indent + " ".rjust(max_length-1)
83
- end
84
- else
85
- puts prefix + " " + value.to_s
86
- #puts Rainbow(prefix).foreground(:yellow).bright + " " + Rainbow(value.to_s).foreground(:green)
87
- end
88
- index+=1
89
- indent=" ".rjust(indent.length)
90
- end
91
- end
92
- end
data/lib/dev/MsBuild.rb DELETED
@@ -1,17 +0,0 @@
1
- #
2
- # C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe vc9/mci.sln /toolsversion:3.5 /property:Configuration=Release /property:Platform=Win32 /l:FileLogger,Microsoft.Build.Engine;logfile=.\log\mci.sln-Release-Build.log
3
- # C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
4
- #
5
-
6
- module Dev
7
- class MsBuild
8
-
9
- def self.extract_platforms(filename)
10
- results = Array::new
11
- text=File.read(filename)
12
- text.scan(/(\w+)<\/Platform/).each{ | var_match | results << var_match[0].to_s if !results.include?(var_match[0].to_s)}
13
- results
14
- end
15
-
16
- end # class MsBuild
17
- end # moduleDev
data/lib/dev/Paths.rb DELETED
@@ -1,50 +0,0 @@
1
- module Dev
2
- class Paths < Hash
3
- def initialize
4
- ["v4.0.30319","v3.5","v3.0","v2.0.50727"].each { |v|
5
- f="C:/WINDOWS/Microsoft.NET/Framework/#{v}/MSBuild.exe"
6
- self[:msbuild]=f if File.exists?(f) && self[:msbuild].nil?
7
- f="C:/WINDOWS/Microsoft.NET/Framework/#{v}/RegAsm.exe"
8
- self[:regasm]=f if File.exists?(f) && self[:regasm].nil?
9
- }
10
-
11
- initialize_nunit
12
- initialize_vs
13
- end
14
-
15
- def initialize_vs
16
- dev="C:/Program Files (x86)/Microsoft Visual Studio 8/Common7/IDE/devenv.exe"
17
- self[:vs8]=dev if File.exists?(dev) && self[:vs8].nil?
18
- dev="C:/Program Files (x86)/Microsoft Visual Studio 9.0/Common7/IDE/devenv.exe"
19
- self[:vs9]=dev if File.exists?(dev) && self[:vs9].nil?
20
- dev="C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/devenv.exe"
21
- self[:vs10]=dev if File.exists?(dev) && self[:vs10].nil?
22
- dev="C:/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/IDE/devenv.exe"
23
- self[:vs11]=dev if File.exists?(dev) && self[:vs11].nil?
24
- dev="C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/devenv.exe"
25
- self[:vs12]=dev if File.exists?(dev) && self[:vs12].nil?
26
- end
27
-
28
- def initialize_nunit
29
- puts_debug "Paths::initialize_nunit"
30
- nunit=""
31
- nunitx86=""
32
-
33
- ["2.6.3/bin","2.6.0.12051/bin","2.5.10.11092/bin/net-2.0"].each{ |v|
34
- if nunit.length==0
35
- Dir.glob("#{Dev::Environment.dev_root}/dep/*/NUnit/#{v}/nunit-console.exe").each{|f|
36
- if nunit.length==0
37
- puts_debug("NUnit file located: #{f}")
38
- nunitx86=f.gsub("nunit-console.exe","nunit-console-x86.exe")
39
- nunit=f if(File.exists?(nunitx86))
40
- nunitx86="" if(!File.exists?(nunitx86))
41
- end
42
- }
43
- end
44
- }
45
-
46
- self[:nunit]=nunit
47
- self[:nunitx86]=nunitx86
48
- end
49
- end # class Paths
50
- end # module Dev
data/lib/dev/Project.rb DELETED
@@ -1,175 +0,0 @@
1
- puts_debug "read " + __FILE__
2
-
3
- require 'semver'
4
- require 'rake'
5
-
6
- module Dev
7
- class Project < Hash
8
-
9
- def initialize
10
- defaults.each { |name,value| self[name]=value }
11
- if(RUBY_VERSION != "1.8.7")
12
- db = Dev::Database.new
13
- db.set_branch_uri(self[:fullname],self[:scm_uri])
14
- end
15
- end
16
-
17
- def defaults
18
- puts_debug "Dev::Project.defaults begin"
19
- system_call = Dev::SystemCall.new("semver init") if(!File.exist?(".semver"))
20
- h=Hash.new
21
- puts_debug "Dev::Project.defaults :scm_uri"
22
- h[:scm_uri] = Scm.get_default_scm_uri if !Scm.get_default_scm_uri.nil?
23
- puts_debug "Dev::Project.defaults :scm_type"
24
- h[:scm_type] = Scm.get_default_scm_type if !Scm.get_default_scm_type.nil?
25
- h[:directory]=Rake.original_dir()
26
- h[:fullname]=get_default_value_fullname
27
- h[:group]=get_default_value_group
28
- h[:name]=get_default_value_name
29
- h[:version]= "#{SemVer.find.major}.#{SemVer.find.minor}.#{SemVer.find.patch}"
30
- h[:src_glob]="**/{*.{rb,feature,spec,cs,c,m,cpp,cxx,h,hpp,i,jam,csproj,vcproj,snk,vcxproj,xcodeproj,plist,xib,sln,filters,xaml,xml,resx,settings,txt,png,bmp,ico,config},Jamfile,.semver,Gemfile,README,LICENSE}"
31
- h[:src_glob]="**/{*.{rb,feature,spec,cs,c,m,cpp,cxx,h,hpp,i,jam,csproj,vcproj,snk,vcxproj,xcodeproj,plist,pch,strings,storyboard,xib,sln,filters,xaml,xml,resx,settings,txt,png,bmp,ico,config},Jamfile,.semver,Gemfile,README,LICENSE}" if RUBY_PLATFORM.include?("darwin")
32
- puts_debug "Dev::Project.defaults :dev_root"
33
- h[:dev_root]= "#{Dev::Environment.dev_root}"
34
- #h[:user_profile]= "#{Dev::Environment.user_profile}"
35
- puts_debug "Dev::Project.defaults default_toolset"
36
- default_toolset = Dev::BoostBuild.defaultToolset
37
- if !default_toolset.nil?
38
- puts_debug "Dev::Project.defaults :toolset"
39
- h[:toolset] = default_toolset
40
- ENV["VisualStudioVersion"]="11.0" if h[:toolset]=="msvc-11.0"
41
- end
42
-
43
-
44
- puts_debug "Dev::Project.defaults :type"
45
- h[:type]="gem"
46
- puts_debug "Dev::Project.defaults B"
47
- if(defined?(DEV_FILE_COUNT))
48
- h[:type]=get_default_value_type
49
- h[:file_count]=Hash.new
50
- ["rb","spec","feature","cs","cpp","h","hpp","vcxproj","csproj"].each{ |ext|
51
- count=Dir.glob("**/*.#{ext}").count
52
- h[:file_count][ext.to_sym]=count if count > 0
53
- }
54
- end
55
-
56
- puts_debug "Dev::Project.defaults C"
57
- h[:paths] = Dev::Paths.new
58
- h[:dep]=Deps.new
59
- puts_debug "Dev::Project.defaults end"
60
- return h
61
- end
62
-
63
- def refresh
64
- puts_debug "Dev::Project.refresh"
65
- start_time=Time.now
66
- self[:dep].refresh
67
- #update_default_values
68
- #db = Dev::Database.new
69
- #db.set_branch_uri(self[:fullname],self[:scm_uri])
70
- puts_debug "DEV refresh elapsed time " + (Time.now-start_time).to_s
71
-
72
- begin
73
- updateProductsDB
74
- rescue
75
- end
76
- end
77
-
78
- def updateProductsDB
79
- filename = Dev::Environment.user_profile + "/Development.sql"
80
- if(File.exists?(filename) && !DEV[:scm_uri].nil? && DEV[:scm_uri].length > 0)
81
- db = SQLite3::Database.new filename
82
- insert = true
83
- id=nil
84
- db.execute("select * from Products where name='" + DEV[:fullname] + "';") do |row|
85
- id=row[0]
86
- name=row[1].to_s
87
- uri=row[2].to_s
88
- insert = false if(name==DEV[:fullname] && uri==DEV[:scm_uri])
89
- end
90
- if(insert)
91
- sid="null"
92
- sid=id.to_s if !id.nil?
93
- sql="insert or replace into Products VALUES(" + sid + ",'" + DEV[:fullname].to_s + "','" + DEV[:scm_uri].to_s + "');"
94
- puts_debug "sql=#{sql}"
95
- db.execute(sql)
96
- db.close
97
- db=nil
98
- end
99
- end
100
- end
101
-
102
- def get_default_value_name
103
- dirs=::Rake.original_dir().split('/')
104
- return dirs[dirs.length-2] if(dirs.length > 3)
105
- return nil
106
- end
107
-
108
- def get_default_value_fullname
109
- wrk="#{Dev::Environment.dev_root}/wrk/"
110
- if(Rake.original_dir.include?(wrk))
111
- name=Rake.original_dir.gsub(wrk,"")
112
- return name if(name.split('/').length==3)
113
- end
114
- nil
115
- end
116
-
117
- def get_default_value_group
118
- dirs=Rake.original_dir().split('/')
119
- return dirs[dirs.length-3] if(dirs.length > 3)
120
- return "unknown"
121
- end
122
-
123
- def get_default_value_type
124
- Dir.glob("**/*.{cpp,hpp}").each { |f| return "c++" }
125
- Dir.glob("**/*.{c,h}").each { |f| return "c" }
126
- Dir.glob("**/*.{cs}").each { |f| return "C#" }
127
- Dir.glob("**/*.{gemspec}").each { |f| return "gem" }
128
- return "ruby"
129
- end
130
-
131
- def loc_cmd
132
- cmd="countloc --recurse ."
133
- cmd="countloc --recurse --mode ruby ." if self[:type]=="ruby" || self[:type]=="gem"
134
- cmd="countloc --recurse --mode csharp ." if self[:type]=="C#"
135
- cmd="countloc --recurse --mode cpp ." if self[:type]=="c++"
136
- return cmd
137
- end
138
-
139
- def loc
140
- system(loc_cmd)
141
- end
142
-
143
- def loc_total
144
- # parse the output for TOTAL LOC
145
- call=Dev::SystemCall.new(loc_cmd)
146
- words=Array.new
147
- words=call.output.split if !call.nil? && !call.output.nil?
148
- if(words.length>6)
149
- return words[words.length-6]
150
- end
151
- "?"
152
- end
153
-
154
- def context
155
- Dev::Environment.user + "." + Dev::Environment.machine
156
- end
157
-
158
- def stamp_task(name)
159
- File.open("#{name}.taskstamp." + context,"w") { |f| f.write(Time.now.to_s) }
160
- end
161
-
162
- def dep?
163
- return self[:directory].include?("#{self[:dev_root]}/dep/")
164
- end
165
-
166
- def wrk?
167
- return self[:directory].include?("#{self[:dev_root]}/wrk/")
168
- end
169
-
170
- end
171
- end # module Dev
172
-
173
- puts_debug "creating DEV instance"
174
- DEV=Dev::Project.new#(nil,true)
175
- DEV[:start_time]=Time.now