O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Clean Project - Verificador de arquivos inúteis

Iniciado por RD12, 24/04/2013 às 16:10

Clean Project
Este script mostra quais e quantos arquivos  não estão sendo usados pelo projeto.

**Este script não verifica os scripts, pois são muitos e não há
como identificar com certeza se está sendo usado o gráfico.

**Ele também não verifica com 100% de precisão. O objetivo é dar
uma ideia de quanto gráfico não está sendo usado.

Essa é a primeira versão, então tem coisas á melhorar.

#=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
#  Autor:RD12           Clean_Project 1.0
#--------------------------------------------------------------------------------
#        Verifica gráficos que não estão sendo usados
#=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:

module CP_Config
  #Pastas que serão verificadas
  Folders = ["Animations","Autotiles","Characters","Icons","Pictures",
         "Titles","Tilesets","Gameovers", "Panoramas","Battlers"]
  Verify = true
end

class Clean_Project

  def initialize
    return unless CP_Config::Verify
     @Project_Data = ""
     @files = Array.new
     @unused = []
       for i in 0..CP_Config::Folders.size-1
        files = Dir.entries("Graphics/#{CP_Config::Folders[i]}").select {|f| !File.directory? f}
         if files.size > 0
           for i in 0..files.size-1
             @f_name = files[i].slice(0..files[i].size-5)
             @files <<  "'" + @f_name + "' "
           end
         end
       end
     load_prdata
  end
       
   def verify
     for i in 0..@files.size-1
       unless @Project_Data.include?(@files[i].to_s)
         @unused << @files[i]
       end
     end
     print "Foram encontrados #{@unused.size} arquivos sem uso."
     print @unused
    end
   
   def load_prdata
       prdata = load_data("Data/Actors.rxdata")
       for a in 1..prdata.size-1
         @Project_Data += prdata[a].character_name
         @Project_Data += prdata[a].battler_name
       end
       prdata = load_data("Data/Animations.rxdata")
       for a in 1..prdata.size-1
         @Project_Data += prdata[a].animation_name
       end
       prdata = load_data("Data/Enemies.rxdata")
       for a in 1..prdata.size-1
         @Project_Data += prdata[a].battler_name
       end
       icons = ["Items","Armors","Weapons", "Skills"]
       for i in 0..icons.size-1
         prdata = load_data("Data/#{icons[i]}.rxdata")
         for a in 1..prdata.size-1
           @Project_Data += prdata[a].icon_name unless @Project_Data.include?(prdata[a].icon_name)
         end
       end
       prdata = load_data("Data/Tilesets.rxdata")
       for a in 1..prdata.size-1
         @Project_Data += prdata[a].panorama_name
         @Project_Data += prdata[a].tileset_name
         for i in 0..prdata[a].autotile_names.size-1
           @Project_Data += prdata[a].autotile_names[i].to_s
         end
       end
       @maps = []
       maps = Dir.entries("Data/").select {|f| !File.directory? f}
       for m in 0..maps.size-1
         @maps << maps[m] if maps[m].include?("Map")
       end
       @maps.delete("MapInfos.rxdata")
       for m in 0..@maps.size-1
         prdata = load_data("Data/#{@maps[m]}")
         for a in 1..prdata.events.size
           pages = prdata.events[a].pages
           for p in 0..pages.size-1
             cn = pages[p].graphic.character_name
             @Project_Data += cn unless @Project_Data.include?(cn)
           end
         end
       end
       prdata = load_data("Data/System.rxdata")
       @Project_Data += prdata.gameover_name 
       @Project_Data += prdata.windowskin_name 
       @Project_Data += prdata.title_name 
       verify
  end
end
Clean_Project.new


**Estou ausente no RM. Fiz este script para passar o tempo.

Se for usa-lo, espero que agradeça em seu tópico pelo menos.

Criado por RD12
[/b]