Hello,
FYI: If it helps a "simplified" build script for the world cup.
Full "official" build script online @
github.com/openfootball/build
Cheers.
Rakefile:
------------------------------
BUILD_DIR = "./build"
# -- output db config
FOOTBALL_DB_PATH = "#{BUILD_DIR}/football.db"
DB_CONFIG = {
adapter: 'sqlite3',
database: FOOTBALL_DB_PATH
}
# input repo sources config
# --- world.db ---
OPENMUNDI_ROOT = "../../openmundi"
WORLD_DB_INCLUDE_PATH = "#{OPENMUNDI_ROOT}/world.db"
# --- football.db ---
OPENFOOTBALL_ROOT = ".."
# national teams
WORLD_CUP_INCLUDE_PATH = "#{OPENFOOTBALL_ROOT}/world-cup"
EURO_CUP_INCLUDE_PATH = "#{OPENFOOTBALL_ROOT}/euro-cup"
AFRICA_CUP_INCLUDE_PATH = "#{OPENFOOTBALL_ROOT}/africa-cup"
NORTH_AMERICA_GOLD_CUP_INCLUDE_PATH =
"#{OPENFOOTBALL_ROOT}/north-america-gold-cup"
COPA_AMERICA_INCLUDE_PATH = "#{OPENFOOTBALL_ROOT}/copa-america"
puts settings
task :default => :build
directory BUILD_DIR
task :clean do
rm FOOTBALL_DB_PATH if File.exists?( FOOTBALL_DB_PATH )
end
task :env => BUILD_DIR do
require 'worlddb'
require 'sportdb'
require 'logutils/db'
LogUtils::Logger.root.level = :info
pp DB_CONFIG
ActiveRecord::Base.establish_connection( DB_CONFIG )
end
task :create => :env do
LogDb.create
ConfDb.create
TagDb.create
WorldDb.create
SportDb.create
end
task :importworld => :env do
# populate world tables
WorldDb.read_setup( 'setups/sport.db.admin', WORLD_DB_INCLUDE_PATH,
skip_tags: true )
end
task :importbuiltin => :env do
SportDb.read_builtin
LogUtils::Logger.root.level = :debug
end
#####################
# national teams
task :worldcup => :importbuiltin do
SportDb.read_setup( 'setups/teams', EURO_CUP_INCLUDE_PATH )
SportDb.read_setup( 'setups/teams', AFRICA_CUP_INCLUDE_PATH )
SportDb.read_setup( 'setups/teams', NORTH_AMERICA_GOLD_CUP_INCLUDE_PATH )
SportDb.read_setup( 'setups/teams', COPA_AMERICA_INCLUDE_PATH )
SportDb.read_setup( 'setups/all', WORLD_CUP_INCLUDE_PATH )
end
task :importsport => :worldcup do
# nothing here
end
task :deletesport => :env do
SportDb.delete!
end
desc 'build football.db from scratch (default)'
task :build => [:clean, :create, :importworld, :importsport] do
puts 'Done.'
end
desc 'update football.db'
task :update => [:deletesport, :importsport] do
puts 'Done.'
end
desc 'pull (auto-update) football.db from upstream sources'
task :pull => :env do
SportDb.update!
puts 'Done.'
end
desc 'print versions of gems'
task :about => :env do
puts ''
puts 'gem versions'
puts '============'
puts "textutils #{TextUtils::VERSION} (#{TextUtils.root})"
puts "worlddb #{WorldDb::VERSION} (#{WorldDb.root})"
puts "sportdb #{SportDb::VERSION} (#{SportDb.root})"
## todo - add LogUtils LogDb ?? - check for .root too
end
desc 'print stats for football.db tables/records'
task :stats => :env do
puts ''
puts 'world.db'
puts '============'
WorldDb.tables
puts ''
puts 'football.db'
puts '==========='
SportDb.tables
end