#!/usr/bin/ruby #$target = "/u1/topo/sdcard" $target = "/run/media/tom/4CC0-7E18/topo" unless FileTest.directory? $target puts "Big Problem: " + $target exit; end def make_level ( lname ) td = $target + "/" + lname unless FileTest.exist? td Dir.mkdir td end unless FileTest.directory? td puts "Problem: " + td exit; end return td end $l3 = make_level "l3" $l4 = make_level "l4" $l5 = make_level "l5" puts $l3 def process ( path, name ) lname = name.downcase lpath = path.downcase return if lname !~ /tpq$/ if ( lpath =~ /map[12]/ ) print path + " -- " + lname + " (SKIP)\n" return end if ( lpath =~ /l3buffer/ ) print path + " -- " + lname + " (SKIP)\n" return end # Skip these, they are level 3 maps included in # certain state sets, but the same coverage # (and for the entire nation) is # provided by "g" files in the SI directory if ( lname =~ /^f/ ) print path + " -- " + lname + " (SKIP)\n" return end # Alaska 250K if ( lname =~ /^y/ ) print path + " -- " + lname + " (SKIP - Alaska)\n" return end # Alaska 250K if ( lname =~ /^a/ ) print path + " -- " + lname + " (SKIP - Alaska)\n" return end target = nil # 500K from SI group if ( lname =~ /^g/ ) target = "#{$l3}/#{lname}" end # 100K if ( lname =~ /^c/ or lname =~ /^k/ ) lname[0] = "c" target = "#{$l4}/#{lname}" end # 24K if ( lname =~ /^n/ or lname =~ /^q/ ) lname[0] = "n" target = "#{$l5}/#{lname}" end if ( target ) if FileTest.exists? target print path + " -- " + lname + " (DUPLICATE)\n" # XXX could do a cmp here, # but I just accept the first file I find. return end cmd = "cp #{path} #{target}" puts cmd system cmd system "chmod 444 #{target}" end end def walk ( path, name ) if FileTest.directory? path puts path + "/" else # leaf process path, name return end Dir.foreach(path) { |x| next if x == "." next if x == ".." walk path + "/" + x, x } end walk ".", ""