return false
end
+
+ def progress
+ if not @log.nil? then
+ if @project.nil? or @project.get_latest_log_cnt.nil? then
+ return "--% (#{log.cnt.to_s} lines) "
+ else
+ return ( ( @log.cnt * 100 ) / @project.get_latest_log_cnt ).to_s + "%"
+ end
+ end
+ # if log is nil then can't figure progress out
+ return ""
+ end
+
+
#
# PROTECTED METHODS
#
@passwd = ""
@os_list = os_list
@server = server
+ @extra_infos = {}
+ read_ext_info
end
return false
end
end
+
+
+ def write_ext_info
+ # write to file
+ info_file = "#{@server.path}/projects/#{@name}/extra"
+ File.open( info_file, "w" ) do |f|
+ @extra_infos.each { |key,value|
+ f.puts "#{key} : #{value}"
+ }
+ end
+ end
+
+
+ # set extra info
+ def read_ext_info
+ info_file = "#{@server.path}/projects/#{@name}/extra"
+ if not File.exists? info_file then return end
+ File.open( info_file, "r" ) do |f|
+ while (not f.gets and line = f.gets.split(":"))
+ if not line[1].nil? then
+ @extra_infos[line[0].strip] = line[1].strip
+ end
+ end
+ end
+ end
+
+
+ def set_log_cnt( cnt )
+ @extra_infos["Latest_log_count"] = cnt.to_s
+ end
+
+
+ def get_latest_log_cnt
+ result = @extra_infos["Latest_log_count"]
+ if not result.nil? then
+ return result.to_i
+ end
+ return nil
+ end
end
@project.add_source_info( @pkginfo.get_version(), @git_commit)
@project.copy_package_info( @pkginfo.get_version(),
"#{@source_path}/package/pkginfo.manifest")
+ @project.set_log_cnt( @log.cnt )
+ @project.write_ext_info
# clean up
@server.cleaner.clean(@id)
end
+ def progress
+ # do noting
+ return ""
+ end
+
+
#
# PROTECTED METHODS
#
else
# clean up
@server.cleaner.clean(@id)
+ if not @project.nil? then
+ @project.set_log_cnt( @log.cnt )
+ @project.write_ext_info
+ end
end
# close logger
end
+ def progress
+ if not @log.nil? then
+ if @project.nil? or @project.get_latest_log_cnt.nil? then
+ return "--% (#{log.cnt.to_s} lines) "
+ else
+ return ( ( @log.cnt * 100 ) / @project.get_latest_log_cnt ).to_s + "%"
+ end
+ end
+ # if log is nil then can't figure progress out
+ return ""
+ end
+
+
#
# PROTECTED METHODS
#
else
ids = job.pending_ancestor.id
end
- BuildCommServer.send(req,"#{status}:#{ids},#{job.id},#{job.get_project().name},#{job.os}")
+ BuildCommServer.send(req,"#{status}:#{ids},#{job.id},#{job.get_project().name},#{job.os} #{job.progress}")
else
- BuildCommServer.send(req,"#{status},#{job.id},#{job.get_project().name},#{job.os}")
+ BuildCommServer.send(req,"#{status},#{job.id},#{job.get_project().name},#{job.os} #{job.progress}")
end
when "REGISTER"
if job.pkg_type == "BINARY" and not job.get_project().nil? then
- BuildCommServer.send(req,"#{status},#{job.id},#{job.get_project().name},#{job.os}")
+ BuildCommServer.send(req,"#{status},#{job.id},#{job.get_project().name},#{job.os} #{job.progress}")
else
BuildCommServer.send(req,"#{status},#{job.id},#{job.pkg_name}")
end
class Log
- attr_accessor :path
+ attr_accessor :path, :cnt
# Log LEVEL
LV_NORMAL = 1
# init
def initialize(path, lv=LV_USER)
+ @cnt = 0
@path = path
if @path.nil? then
@logger = Logger.new(STDOUT)
# diable logger format
@default_formatter = @logger.formatter
@no_prefix_formatter = proc do |severity, datetime, progname, msg|
- " >#{msg}"
+ " >#{msg}"
end
end
def info(msg, lv=LV_NORMAL)
if @path.nil? and not @second_out.nil? then puts "Info: #{msg}"
else @logger.info msg end
- if not @second_out.nil? and lv >= @second_out_level then
- output_extra "Info: " + msg
+ if not @second_out.nil? and lv >= @second_out_level then
+ output_extra "Info: " + msg
end
- end
+ @cnt = @cnt + 1
+ end
- def warn(msg, lv=LV_NORMAL)
+ def warn(msg, lv=LV_NORMAL)
if @path.nil? and not @second_out.nil? then puts "Warn: #{msg}"
else @logger.warn msg end
if not @second_out.nil? and lv >= @second_out_level then
- output_extra "Warn: " + msg
+ output_extra "Warn: " + msg
end
- end
+ @cnt = @cnt + 1
+ end
- def error(msg, lv=LV_NORMAL)
+ def error(msg, lv=LV_NORMAL)
if @path.nil? and not @second_out.nil? then puts "Error: #{msg}"
else @logger.error msg end
if not @second_out.nil? and lv >= @second_out_level then
- output_extra "Error: " + msg
+ output_extra "Error: " + msg
end
+ @cnt = @cnt + 1
end
- def output(msg, lv=LV_NORMAL)
+ def output(msg, lv=LV_NORMAL)
if @path.nil? and not @second_out.nil? then puts msg
else @logger.info msg end
if not @second_out.nil? and lv >= @second_out_level then
- output_extra msg
+ output_extra msg
end
+ @cnt = @cnt + 1
end
protected
def output_extra(msg)
- #do nothing
- end
-
+ #do nothing
+ end
end