#!/usr/bin/ruby
$:.unshift File.join( File.dirname( $0 ), "p4ruby", RUBY_PLATFORM )
$:.unshift "/Library/Ruby/Gems/1.8/gems/json-1.1.3/lib/"
require 'P4'
require 'json'
require 'cgi'
load File.join( File.dirname( $0 ), "treemapCoreData.rb" )
def pruneTree( json, depth )
if( depth == 0 )
if( json["children"] != nil )
json["children"].clear()
end
return
end
if( json["children"] != nil )
json["children"].each do |c|
pruneTree( c, depth.to_i()-1 )
end
end
end
def getSubtree( json, id )
names = id.split( '/' )
st = json
names.each do |n|
st["children"].each do |c|
if( c["name"] == n )
st = c;
break;
end
end
end
return st
end
log = File.new( 'serverData.log', 'a+' )
log.puts "Beginning new run..."
server = "perforce:1666"
areaType = "filesize"
shadingType = "filecount"
id = server
cgi = CGI.new
# give server info on empty request
if( !cgi.has_key?( 'server' ) )
data = {}
data["areaTypes"] = getAreaTypes()
data["shadingTypes"] = getShadingTypes()
data["prettyAreaTypes"] = getPrettyAreaTypes()
data["prettyShadingTypes"] = getPrettyShadingTypes()
data["servers"] = getServers()
data["prettyServers"] = getPrettyServers()
cgi.out( "type" => "application/json",
"status" => "OK"
) { JSON.pretty_generate( data ) }
log.puts "\tdelivered server data"
log.puts "...and done."
Process.exit()
end
if( cgi.has_key?( 'server' ) )
server = id = cgi['server']
log.puts "\tserver set to " + cgi['server']
end
if( cgi.has_key?( 'id' ) )
id = cgi['id']
log.puts "\tid set to " + cgi['id']
end
if( cgi.has_key?( 'areaType' ) )
areaType = cgi['areaType']
log.puts "\tareaType set to " + cgi['areaType']
end
if( cgi.has_key?( 'shadingType' ) )
shadingType = cgi['shadingType']
log.puts "\tshadingType set to " + cgi['shadingType']
end
datafile = ""
if( cgi.has_key?( 'data' ) )
datafile = server.delete( ':' ) + "-" + areaType + "-" + shadingType + '.dat'
log.puts "\tserving up query data for " + datafile
else
datafile = server.delete( ':' ) + "-" + areaType + "-" + shadingType + '.json'
log.puts "\tserving up json for " + datafile
end
Dir.chdir( "sdata" )
if( File.file?( datafile ) )
json = IO.read( datafile )
rj = JSON.parse( json );
if( !cgi.has_key?( 'data' ) )
if( rj["name"] != id )
log.puts "\tGetting subtree for #{id}"
rj = getSubtree( rj, id )
end
pruneTree( rj, "1" );
end
cgi.out( "type" => "application/json",
"status" => "OK"
) { JSON.pretty_generate( rj ) }
end
log.puts "...and done."
# |
Change |
User |
Description |
Committed |
|
#1
|
16613 |
Matt Attaway |
Initial add of an dataviz experiment I did with treemaps in Helix |
|
|