dev 1.0.247 → 2.0.0

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.
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