class BigKeeper::BigkeeperParser

Bigkeeper file parser

Public Class Methods

config() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 283
def self.config
  @@config
end
global_configs(key) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 203
def self.global_configs(key)
  if @@config[:configs] == nil
    return
  end
  @@config[:configs][key]
end
home_git() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 163
def self.home_git()
  @@config[:home][:git]
end
home_modules_workspace() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 167
def self.home_modules_workspace()
  if @@config[:home][:modules_workspace]
    home_modules_workspace = @@config[:home][:modules_workspace]
    if home_modules_workspace.rindex('/') != home_modules_workspace.length - 1
      home_modules_workspace = home_modules_workspace + '/'
    end

    home_modules_workspace
  else
    '../'
  end
end
home_name() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 159
def self.home_name
  @@config[:name]
end
home_pulls() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 180
def self.home_pulls()
  @@config[:home][:pulls]
end
module_full_path(home_path, user_name, module_name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 210
def self.module_full_path(home_path, user_name, module_name)
  Logger.error("Can't find a Pod named #{module_name} in current directory.") unless @@config[:modules].invert.has_value?(module_name)

  if @@config[:users] \
    && @@config[:users][user_name] \
    && @@config[:users][user_name][:mods] \
    && @@config[:users][user_name][:mods][module_name] \
    && @@config[:users][user_name][:mods][module_name][:path]
    File.expand_path(@@config[:users][user_name][:mods][module_name][:path])
  else
    if @@config[:modules][module_name][:alias]
      File.expand_path("#{home_path}/#{home_modules_workspace}/#{@@config[:modules][module_name][:alias]}")
    else
      File.expand_path("#{home_path}/#{home_modules_workspace}/#{module_name}")
    end
  end
end
module_git(module_name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 244
def self.module_git(module_name)
  @@config[:modules][module_name][:git]
end
module_maven(module_name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 252
def self.module_maven(module_name)
  @@config[:modules][module_name][:maven_group] + ':' + @@config[:modules][module_name][:maven_artifact]
end
module_maven_artifact(module_name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 256
def self.module_maven_artifact(module_name)
  @@config[:modules][module_name][:maven_artifact]
end
module_names() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 277
def self.module_names
  if @@config[:modules] != nil
    @@config[:modules].keys
  end
end
module_path(user_name, module_name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 228
def self.module_path(user_name, module_name)
  if @@config[:users] \
    && @@config[:users][user_name] \
    && @@config[:users][user_name][:mods] \
    && @@config[:users][user_name][:mods][module_name] \
    && @@config[:users][user_name][:mods][module_name][:path]
    File.expand_path(@@config[:users][user_name][:mods][module_name][:path])
  else
    if @@config[:modules][module_name][:alias]
      "#{home_modules_workspace}#{@@config[:modules][module_name][:alias]}"
    else
      "#{home_modules_workspace}#{module_name}"
    end
  end
end
module_pulls(module_name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 264
def self.module_pulls(module_name)
  @@config[:modules][module_name][:pulls]
end
module_source(module_name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 248
def self.module_source(module_name)
  @@config[:modules][module_name][:mod_path]
end
module_version_alias(module_name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 260
def self.module_version_alias(module_name)
  @@config[:modules][module_name][:version_alias]
end
parse(bigkeeper) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 58
def self.parse(bigkeeper)
  @@config = {}
  if @@config.empty?
    Logger.error("Can't find a Bigkeeper file in current directory.") if !FileOperator.definitely_exists?(bigkeeper)

    content = File.read(bigkeeper, :encoding => 'UTF-8')
    content.gsub!(/version\s/, 'BigKeeper::version ')
    content.gsub!(/user\s/, 'BigKeeper::user ')
    content.gsub!(/home\s/, 'BigKeeper::home ')
    content.gsub!(/mod\s/, 'BigKeeper::mod ')
    content.gsub!(/modules\s/, 'BigKeeper::modules ')
    content.gsub!(/configs\s/, 'BigKeeper::configs ')
    content.gsub!(/param\s/, 'BigKeeper::param ')
    content.gsub!(/post_install\s/, 'BigKeeper::post_install ')
    content.gsub!(/cmd\s/, 'BigKeeper::cmd ')
    eval content
  end
end
parse_command(key, value) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 151
def self.parse_command(key, value)
  @@config[:post_install] = @@config[:post_install].merge(key => value)
end
parse_configs() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 139
def self.parse_configs
  @@config[:configs] = {}
end
parse_home(name, params) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 99
def self.parse_home(name, params)
  @@config[:home] = params
  @@config[:name] = name
end
parse_mod(name, params) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 104
def self.parse_mod(name, params)
  if params[:path]
    parse_user_mod(name, params)
  elsif params[:git]
    parse_modules_mod(name, params)
  else
    Logger.error(%(There should be ':path =>' or ':git =>' ':alias =>' for mod #{name}))
  end
end
parse_modules() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 133
def self.parse_modules
  modules = @@config[:modules]
  modules = {} if modules.nil?
  @@config[:modules] = modules
end
parse_modules_mod(name, params) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 124
def self.parse_modules_mod(name, params)
  if @@config[:source] != nil
      params[:spec] = "#{@@config[:tmp_spec]}"
  end
  modules = @@config[:modules]
  modules[name] = params
  @@config[:modules] = modules
end
parse_param(key, value) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 143
def self.parse_param(key, value)
  @@config[:configs] = @@config[:configs].merge(key => value)
end
parse_post_install() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 147
def self.parse_post_install
  @@config[:post_install] = {}
end
parse_source(name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 77
def self.parse_source(name)
  @@config.delete("tmp_spec")
  source_split = name.split(",") unless name.split(",").length != 2
  if source_split != nil
    sources = Hash["#{source_split[1].lstrip}" => "#{source_split[0]}"]
    @@config[:source] = sources
    @@config[:tmp_spec] = source_split[1].lstrip
  end
end
parse_user(name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 91
def self.parse_user(name)
  @@current_user = name
  users = @@config[:users]
  users = {} if users.nil?
  users[name] = {}
  @@config[:users] = users
end
parse_user_mod(name, params) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 114
def self.parse_user_mod(name, params)
  users = @@config[:users]
  user = users[@@current_user]
  mods = user[:mods]
  mods = {} if mods.nil?
  mods[name] = params
  user[:mods] = mods
  @@config[:users] = users
end
parse_version(name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 87
def self.parse_version(name)
  @@config[:version] = name
end
post_install_command() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 199
def self.post_install_command
  @@config[:post_install]
end
source_spec_name(module_name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 189
def self.source_spec_name(module_name)
  spec = @@config[:modules][module_name][:spec]
end
source_spec_path(module_name) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 184
def self.source_spec_path(module_name)
  spec = @@config[:modules][module_name][:spec]
  @@config[:source][spec]
end
sources() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 193
def self.sources
  if @@config[:source] != nil
    @@config[:source].keys
  end
end
verify_modules(modules) click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 268
def self.verify_modules(modules)
  modules = [] unless modules
  modules = modules.uniq
  modules.each do |item|
    Logger.error("Can not find module #{item} in Bigkeeper file") unless @@config[:modules][item]
  end
  modules
end
version() click to toggle source
# File lib/big_keeper/util/bigkeeper_parser.rb, line 155
def self.version
  @@config[:version]
end