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/Array.rb DELETED
@@ -1,17 +0,0 @@
1
- class Array
2
- # remove all auto generated entries
3
- def strip_auto_entries
4
- keep=Array.new
5
- self.each { |e|
6
- if(!e.nil?)
7
- h=nil
8
- h=e if e.kind_of?(Hash)
9
- h=Dev::Environment.s_to_hash(e)
10
- keep << e if(!h.nil? && (!h.has_key?(:auto) || !h[:auto]))
11
- keep << e if e.kind_of?(String) && !e.include?('{')
12
- end
13
- }
14
- self.clear
15
- keep.each{|e| self << e}
16
- end
17
- end
@@ -1,94 +0,0 @@
1
- module Dev
2
- class BoostBuild
3
-
4
- @@default_toolset=nil
5
- def self.setDefaultToolset toolset
6
- @@default_toolset=toolset
7
- end
8
-
9
- def self.defaultToolset
10
- if(defined?(BOOSTBUILD_DEFAULT_TOOLSET))
11
- puts_debug "BOOSTBUILD_DEFAULT_TOOLSET=#{BOOSTBUILD_DEFAULT_TOOLSET}"
12
- return BOOSTBUILD_DEFAULT_TOOLSET
13
- end
14
- return @@default_toolset if !@@default_toolset.nil?
15
- begin
16
- text=''
17
- Dir.chdir(DEV_ROOT) { |dir|
18
- text=`b2 --debug-configuration`
19
- }
20
- toolset=''
21
- text.scan(/<toolset>([\.\w-]+)/).each{ | var_match |
22
- toolset=var_match[0].to_s
23
- }
24
- return toolset
25
- rescue
26
- return nil
27
- end
28
- end
29
-
30
- def self.getLibraryProperties(filename)
31
- #words=filename.split('-')
32
- #flags=words[2] if words.length == 4
33
- #flags = flags + "-" + words[3] if words.length == 5
34
- #result="<toolset>" + getToolset(words[1]) if words.length==4
35
- link="static"
36
- link="shared" if filename.index("lib") != 0 && !filename.include?(".a")
37
- link="shared" if filename.include?(".so") || filename.include?(".dylib")
38
- result = " <link>" + link + " "
39
- variant = "release"
40
- variant = "debug" if filename.include?("d.") || filename.include?("-gd-")
41
- #result = result + " <variant>release " if !flags.include?("d")
42
- #result = result + " <variant>debug " if flags.include?("d")
43
- result = result + " <variant>#{variant} "
44
- threading="single"
45
- threading="multi" if filename.include?("-mt")
46
- #result = result + " <threading>multi " if flags.include?("mt")
47
- #result = result + " <threading>single " if !flags.include?("mt")
48
- result = result + " <threading>#{threading} "
49
- #result = result + " <runtime-link>static " if flags.include?("s")
50
- result = result + " <runtime-debugging>on " if filename.include?('-gd') #if flags.include?("g")
51
- result = result + ";"
52
- end
53
-
54
- def self.buildJamfile(directory)
55
- jamfilename=directory+"/Jamfile"
56
- if(File.exists?(jamfilename))
57
- puts "Jamfile already exists."
58
- return
59
- end
60
- if(File.exists?(directory))
61
- Dir.chdir(directory) do
62
- File.open(jamfilename,'w') { |jamfile|
63
- Dir.glob("*boost_*").each {|f|
64
- jamfile.puts getJamfileLine(f)
65
-
66
- # add extra <link>shared entry for windows
67
- line = getJamfileLine(f)
68
- if(line.include?("<link>static") && line.include?("-vc") && line.include?(".lib"))
69
- line = line.gsub("<link>static","<link>shared")
70
- jamfile.puts line
71
- end
72
- }
73
- }
74
- end
75
- end
76
- end
77
-
78
- def self.getJamfileLine(filename)
79
- words=filename.split('-')
80
- library = words[0]
81
- library = library[3,library.length-3] if library.index("lib") == 0
82
- return "lib " + library + " : : <file>./" + filename + " " + getLibraryProperties(filename)
83
- end
84
-
85
- def self.getToolset(name)
86
- toolset = "msvc"
87
- toolset = "darwin-4.2.1" if name=='xgcc42'
88
- toolset = "msvc-9.0" if name=='vc90'
89
- toolset = "msvc-10.0" if name=='vc100'
90
- toolset = "msvc-11.0" if name=='vc110'
91
- return toolset
92
- end
93
- end
94
- end
data/lib/dev/Commands.rb DELETED
@@ -1,185 +0,0 @@
1
- if(RUBY_VERSION=="1.8.7")
2
- commandArray=["Compile","Replace","Setup","Test","Commit","Info","Update","Build"]
3
- else
4
- commandArray=["Compile","Replace","Setup","Test","Commit","Info","Update","Pull","DeepPull","Build"]
5
- end
6
- commandArray.each { |f|
7
- if(RUBY_VERSION=="1.8.7")
8
- require("#{DEV_FILEPATH}/dev/cmd/#{f}.rb")
9
- else
10
- require_relative("cmd/#{f}.rb")
11
- end
12
- }
13
-
14
- module Dev
15
- class Commands < Hash
16
-
17
- def initialize
18
- self[:setup]=Dev::Cmd::Setup.new
19
- self[:replace]=Dev::Cmd::Replace.new
20
- self[:compile]=Dev::Cmd::Compile.new
21
- self[:test]=Dev::Cmd::Test.new
22
- self[:commit]=Dev::Cmd::Commit.new
23
- self[:update]=Dev::Cmd::Update.new
24
- if(RUBY_VERSION != "1.8.7")
25
- self[:pull]=Dev::Cmd::Pull.new
26
- self[:deep_pull]=Dev::Cmd::DeepPull.new
27
- end
28
- refresh
29
- end
30
-
31
- def refresh
32
- puts_debug "Dev::Command.refresh"
33
- start_time=Time.now
34
- self[:setup].refresh(DEV[:dep]) if self[:setup].respond_to?("refresh")
35
- self[:replace].refresh(DEV[:dep]) if self[:replace].respond_to?("refresh")
36
- self[:compile].refresh if self[:compile].respond_to?("refresh")
37
- self[:test].refresh if self[:test].respond_to?("refresh")
38
- self[:commit].refresh if self[:commit].respond_to?("refresh")
39
- self[:update].refresh if self[:update].respond_to?("refresh")
40
- if(RUBY_VERSION != "1.8.7")
41
- self[:pull].refresh if self[:pull].respond_to?("refresh")
42
- self[:deep_pull].refresh if self[:deep_pull].respond_to?("refresh")
43
- end
44
- puts_debug "Commands refresh elapsed time " + (Time.now-start_time).to_s
45
- end
46
-
47
- def info; Dev::Cmd::Info.execute; end
48
- def setup; execute_method "setup"; end
49
- def compile; execute_method "compile"; end
50
- def test; execute_method "test"; end
51
- def push; Dev::Cmd::Push.execute; end
52
- def pull; Dev::Cmd::Pull.execute; end
53
- def deep_pull; Dev::Cmd::DeepPull.execute; end
54
- def update;execute_method("update");end
55
- def replace
56
- self[:replace].execute if self[:replace].respond_to?("execute")
57
- end
58
-
59
- def execute_method(name)
60
- string_name=name.to_s
61
- puts_debug "method_missing name=" + string_name
62
-
63
- puts " no directives defined for #{string_name}" if self.get_value(string_name).nil? && string_name=="pull"
64
- return if(self.get_value(string_name).nil?)
65
- puts " no directives defined for #{string_name}" if self.get_value(string_name).length < 1
66
- return if self.get_value(string_name).length < 1
67
-
68
- value=self.get_value(string_name)
69
- if value.kind_of?(Hash)
70
- value.each { |name,value| Dev::Commands.execute_cmd(value); sleep(0.5) }
71
- else
72
- value.each { |c| Dev::Commands.execute_cmd(c); sleep(0.5) }
73
- end
74
- end
75
-
76
- def execute(c)
77
- Dev::Commands::execute_cmd(c)
78
- end
79
- def self.execute_cmd(c)
80
- # expand the command here....
81
- command=Dev::Environment.expand_command(c)
82
- puts_debug "command: " + command.to_s + " (in Project.execute_cmd)"
83
- if c.include?('<%') && c.include?('%>')
84
- #puts "Command: " + c
85
- eval(c.gsub("<%","").gsub("%>",""))
86
- else
87
- # is the command a hash?
88
- hash=c if c.kind_of?(Hash)
89
- # can the command be converted to a hash?
90
- hash=Dev::Environment.s_to_hash(command) if hash.nil?
91
- call=nil
92
- if(hash.nil?)
93
- call=Dev::SystemCall.new(command)
94
- else
95
- call=Dev::SystemCall.new(hash)
96
- end
97
- call.puts_summary
98
- end
99
- end
100
-
101
- def add
102
- unless DEV[:src_glob].nil?
103
- scm = Dev::Scm.new
104
- return if scm.scm_type == "none"
105
- if DEV[:src_glob].kind_of?(Hash)
106
- DEV[:src_glob].each do |name,value|
107
- puts " adding files " + value.to_s
108
- scm.add_file_glob(value)
109
- end
110
- else
111
- puts " adding files " + DEV[:src_glob].to_s
112
- scm.add_file_glob(DEV[:src_glob])
113
- end
114
- end
115
- end
116
-
117
- def commit
118
- scm = Dev::Scm.new
119
- return if scm.scm_type == "none"
120
- puts " no differences detected" unless has_diff
121
- execute_method("commit") if has_diff
122
- #if File.exists?(".svn")
123
- if Scm.get_default_scm_type == "svn"
124
- call=Dev::SystemCall.new('svn update')
125
- call=Dev::SystemCall.new('svn info')
126
- url = call.output.match(/URL: ([\d\w\.\:\/-]+)/)[1]
127
- rev = call.output.match(/Last Changed Rev: ([\d]+)/)[1]
128
- puts " #{url}@#{rev}"
129
- end
130
- FileUtils.rm "commit.message" if File.exists?("commit.message")
131
- end
132
-
133
- def check
134
- puts " default.taskstamp." + DEV.context + " exists." if File.exists?("default.taskstamp."+ DEV.context)
135
- puts " default.taskstamp." + DEV.context + " does not exist" unless File.exists?("default.taskstamp." +DEV.context)
136
-
137
- begin
138
- hasdiff = has_diff
139
- rescue
140
- puts "has_diff threw an exception."
141
- end
142
-
143
- puts " no differences detected." unless hasdiff
144
- puts " detected differences." if hasdiff
145
-
146
- if File.exists?("default.taskstamp."+DEV.context) && !hasdiff
147
- #puts " nothing to do"
148
- update
149
- exit
150
- end
151
-
152
- #if !has_diff and File.exists?("default.taskstamp."+context)
153
- # puts " no differences detected."
154
- # puts " default.taskstamp." + context + " exists."
155
- # exit
156
- #end
157
- #puts " detected differences" if has_diff
158
- #puts " default.taskstamp." + context + " does not exist" unless File.exists?("default.taskstamp." + context)
159
- end
160
-
161
- def has_diff
162
- call=nil
163
-
164
- if DEV[:scm_type] == "git"
165
- call=Dev::SystemCall.new('git status')
166
- return true if call.output.include?("new file:")
167
- return true if call.output.include?("deleted:")
168
- return true if call.output.include?("modified:")
169
- return false
170
- end
171
-
172
- #call=Dev::SystemCall.new('git diff --name-only') if File.exists?(".git")
173
- call=Dev::SystemCall.new('svn diff') if Scm.get_default_scm_type == "svn" #if File.exists?(".svn")
174
-
175
- unless call.nil? || call.output.length==0
176
- puts_debug call.output
177
- return true # differences detected
178
- else
179
- return false # no differences
180
- end
181
- end
182
- end # class Tasks
183
- end # module Dev
184
-
185
- CMD=Dev::Commands.new()
data/lib/dev/Database.rb DELETED
@@ -1,134 +0,0 @@
1
- if(RUBY_VERSION != "1.8.7")
2
- require 'sqlite3'
3
-
4
- module Dev
5
- #
6
- # Branches table
7
- # Name text e.g. google/devgem/trunk
8
- # Uri text e.g. https://devgem.googlecode.com/svn/trunk
9
- #
10
- # create table Branches(Name text,Uri text,UNIQUE(Name));
11
- #
12
- class Database
13
- attr_accessor :db
14
-
15
- def self.filename
16
- return Dev::Environment.dev_root + "/dev.db"
17
- end
18
-
19
- def self.get_table_names(filename)
20
- names=Array.new
21
- db = SQLite3::Database.new filename
22
- db.execute("select name from sqlite_master where type='table' ORDER BY name") do |row|
23
- names << row[0]
24
- end
25
- return names
26
- end
27
-
28
- def initialize
29
- filename=Dev::Database.filename
30
- table_names=Dev::Database.get_table_names(filename)
31
- @db = SQLite3::Database.new filename
32
- @db.execute("create table Branches(Name text,Uri text,UNIQUE(Name));") if !table_names.include? "Branches"
33
-
34
- columns=""
35
- [:uri,:revision,:dir,:user,:machine,:ruby_version,:ruby_platform,:cmd,:status,:start_time,:end_time,:elapsed,:timeout,:timed_out,:output,:error].each { |s|
36
- columns="#{columns}," if columns.length > 0
37
- columns="#{columns}#{s.to_s} text"
38
- }
39
- @db.execute("create table Results(#{columns});") if ! table_names.include? "Results"
40
- @db.close
41
- @db=nil
42
- end
43
-
44
- def set_branch_uri(name,uri)
45
- @db = SQLite3::Database.new Dev::Database.filename
46
- @db.execute("insert or replace into Branches (Name,Uri) VALUES ('#{name}','#{uri}');")
47
- @db.close
48
- @db=nil
49
- end
50
-
51
- def has_result(h)
52
- results=get_results({:machine=>h[:machine],:user=>h[:user],:start_time=>h[:start_time]})
53
- return true if results.length > 0
54
- return false
55
- end
56
-
57
- def add_result(h)
58
- columns=""
59
- values=""
60
- [:uri,:revision,:dir,:user,:machine,:ruby_version,:ruby_platform,:cmd,:status,:start_time,:end_time,:elapsed,:timeout,:timed_out,:output,:error].each { |s|
61
- sval=""
62
- sval=h[s].to_s if h.has_key?(s)
63
- sval.gsub("'","''") # need to escape single quotes for sqlite
64
- columns="#{columns}," if columns.length > 0
65
- values="#{values}," if values.length > 0
66
- columns="#{columns}#{s.to_s}"
67
- values="#{values}'#{sval}'"
68
- }
69
- #puts "insert or replace into Results (#{columns}) VALUES (#{values});"
70
- @db = SQLite3::Database.new Dev::Database.filename
71
- @db.execute("insert or replace into Results (#{columns}) VALUES (#{values});")
72
- @db.close
73
- @db=nil
74
- end
75
-
76
- def get_results(where_hash)
77
- array=Array.new
78
- where=""
79
- where_hash.each{ |k,v|
80
- sval=v.to_s
81
- sval.gsub("'","''") # need to escape single quotes for sqlite
82
- where="#{where} AND " if where.length > 0
83
- where="#{where}#{k.to_s}='#{sval}'"
84
- }
85
-
86
- columns=""
87
- [:uri,:revision,:dir,:user,:machine,:ruby_version,:ruby_platform,:cmd,:status,:start_time,:end_time,:elapsed,:timeout,:timed_out,:output,:error].each { |s|
88
- columns="#{columns}," if columns.length > 0
89
- columns="#{columns}#{s.to_s}"
90
- }
91
-
92
- @db = SQLite3::Database.new Dev::Database.filename
93
- @db.execute("select #{columns} from Results where #{where};") do |row|
94
- h=Hash.new
95
- index = 0
96
- [:uri,:revision,:dir,:user,:machine,:ruby_version,:ruby_platform,:cmd,:status,:start_time,:end_time,:elapsed,:timeout,:timed_out,:output,:error].each { |s|
97
- #puts "row[#{index}].to_s=#{row[index].to_s}"
98
- h[s]=row[index].to_s
99
- index=index+1
100
- }
101
- array << h if !h.empty?
102
- end
103
- @db.close
104
- @db=nil
105
-
106
- return array
107
- end
108
-
109
- def get_branch_uri(name)
110
- uri=""
111
- @db = SQLite3::Database.new Dev::Database.filename
112
- @db.execute("select Uri from Branches where Name='#{name}';") do |row|
113
- uri=eval(row[0].to_s)[0]
114
- end
115
- @db.close
116
- @db=nil
117
- return uri
118
- end
119
-
120
- def find_branches(pattern)
121
- names=Array.new
122
- sql="select Name from Branches where Name LIKE '#{pattern}';"
123
- sql="select Name from Branches;" if pattern.nil? || pattern.length==0
124
- @db = SQLite3::Database.new Dev::Database.filename
125
- @db.execute(sql) do |row|
126
- names << row[0] if(row[0].length > 0)
127
- end
128
- @db.close
129
- @db=nil
130
- return names
131
- end
132
- end # class Database
133
- end # module Dev
134
- end
data/lib/dev/Dep.rb DELETED
@@ -1,117 +0,0 @@
1
- module Dev
2
-
3
- #PROJECT = Dev::Project.new( {
4
- # name: 'Musco.Cs.Framework',
5
- # type: 'C#',
6
- # dep: { nunit:{uri: 'svn://denver-svn/ThirdParty/export/NUnit/2.5.10.11092',
7
- # dir: 'ThirdParty/NUnit/2.5.10.11092'},
8
- # specflow:{uri: 'svn://denver-svn/ThirdParty/export/SpecFlow/1.8.1',
9
- # dir: 'ThirdParty/SpecFlow/1.8.1'},
10
- # interface:{uri: 'svn://denver-svn/Musco.Cs/Interface/trunk@#{INTERFACE_REV}',
11
- # rake: 'default', cache: 'true' }
12
- # } ,
13
- # replace: { interface: { glob: '*.csproj',
14
- # search: /Musco.Cs\\Interface\\trunk@[\d]+/,
15
- # replace: "Musco.Cs\\Interface\\trunk@#{INTERFACE_REV}" } }
16
- #} )
17
-
18
- # uri:
19
- # dir:
20
- # rake:
21
- # cache:
22
- class Dep < Hash
23
-
24
- # constructor that accepts a hash
25
- def initialize(hash)
26
- hash.each { |name,value| self[name]=value }
27
- end
28
-
29
- def get_rel_dir
30
- return Dev::Environment.expand_string_variables(self[:dir]) unless self[:dir].nil?
31
- uri=Dev::Environment.expand_string_variables(self[:uri])
32
- uri_words=uri.split('/')
33
- while(uri_words.length > 3) do
34
- uri_words.shift
35
- end
36
- return uri_words.join('/')
37
- end
38
-
39
- def get_dep_dir
40
- return Dev::Environment.dev_root + "/dep/" + get_rel_dir
41
- end
42
-
43
- def get_wrk_dir
44
- return Dev::Environment.dev_root + "/wrk/" + get_rel_dir unless get_rel_dir.include?("@")
45
- return Dev::Environment.dev_root + "/wrk/" + get_rel_dir.split("@")[0]
46
- end
47
-
48
- def get_export_command(local_dir)
49
- unless self[:uri].nil?
50
- uri=Dev::Environment.expand_string_variables(self.get_value("uri"))
51
- if(uri.include?('github.com'))
52
- return "<%Dev::Scm::export('#{uri}','#{local_dir}','git') unless File.exists?('#{local_dir}')%>"
53
- end
54
- return "<%Dev::Scm::export(\"#{uri}\",\"#{local_dir}\",'svn') unless File.exists?(\"#{local_dir}\")%>"
55
- end # unless
56
- end
57
-
58
- def get_rake_command
59
- end
60
-
61
- def self.clean_dep(rel_dir,age_in_days)
62
- Dir.glob("#{Dev::Environment.dev_root}/dep/#{rel_dir}/*").each { |f|
63
- if(File.directory?(f))
64
- elapsed = Time.now - File.mtime(f)
65
- if(elapsed > 60*60*24*age_in_days)
66
- puts " removing directory #{f}"
67
- FileUtils.rm_rf(f)
68
- end
69
- end
70
- }
71
- end
72
-
73
- def self.clobber_dep(rel_dir)
74
- Dir.glob("#{Dev::Environment.dev_root}/dep/#{rel_dir}/*").each { |f|
75
- if(File.directory?(f))
76
- puts " removing directory #{f}"
77
- FileUtils.rm_rf(f)
78
- end
79
- }
80
- end
81
-
82
- def setup_commands
83
- array = Array.new
84
- array << get_export_command(get_dep_dir)
85
- array << "<%puts ' #{get_dep_dir} exists.' if File.exist?('#{get_dep_dir}')%>"
86
-
87
- rake=true
88
- rake=false if !self.get_value("no_rake").nil? && File.exists?(self.get_value("no_rake"))
89
- if(rake)
90
- unless self[:rake].nil?
91
- array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_dep_dir}', cache:'true', capture_output: true, capture_error: true, auto: true}" unless self.get_value("cache").nil?
92
- array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_dep_dir}', capture_output: true, capture_error: true , auto: true}" if self.get_value("cache").nil?
93
- end
94
- end
95
-
96
- return array
97
- end
98
-
99
- def pull_commands
100
- array = Array.new
101
- if(File.exists?(get_wrk_dir))
102
- unless self[:rake].nil?
103
- array << "{cmd: 'rake pull', dir: '#{get_wrk_dir}'}"
104
- #array << "{cmd: 'rake pull', dir: '#{get_wrk_dir}', capture_output: false}"
105
- #array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_wrk_dir}'}"
106
- rakefile="#{get_wrk_dir}/rakefile.rb"
107
- array << "<%Dev::Svn::update_revision_variables('#{rakefile}')%>"
108
- array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_wrk_dir}'}"
109
- #array << "{cmd: 'rake #{self.get_value("rake").to_s}', dir: '#{get_wrk_dir}', capture_output: false}"
110
- end
111
- end
112
-
113
- return array
114
- end
115
-
116
- end # class Dep
117
- end # module Dev