class BaseChip::TopMenu

Public Instance Methods

clean(*args) click to toggle source
# File lib/base_chip/top_menu.rb, line 139
def clean(*args)
  args << 'all' if args.empty?
  ready_workload(*args)
  @project.workload.each do |w|
    w.clean
  end
end
clobber(*args) click to toggle source
# File lib/base_chip/top_menu.rb, line 149
def clobber(*args)
  args << 'all' if args.empty?
  ready_workload(*args)
  @project.workload.each do |w|
    w.clobber
  end
end
exec(*args) click to toggle source
# File lib/base_chip/top_menu.rb, line 81
def exec(*args)
  begin
    fault "Repeat is a planned feature" if BaseChip.options.repeat

    args << 'all' if options.client_of && args.size == 0
    ready_workload(*args)

    @project.enable_tracking(options.opc,options.opi) if options.opc
    @project.tasker.clusters = @project.dereference_clusters
    @project.tasker.client_of = options.client_of
    @project.tasker.client_id = options.client_id || 0

    if options.client_of
      @project.tasker.run
    else
      if @targets.size > 0
        begin
          @project.run_all_readied
          # @project.track_complete 'pass'
        rescue Reporting::Fault => e
          # @project.track_complete 'fail', e.message
          exit 1
        rescue RuntimeError => e
          # @project.track_complete 'fail', e.message
          p e
          raise e
        end
      end
    end
  rescue Interrupt # quetly handle the interrupt of clients
    raise unless options.client_of 
  end
end
init(project_name, shared_directory) click to toggle source
# File lib/base_chip/top_menu.rb, line 33
def init(project_name, shared_directory)
  $shared_directory = shared_directory
  BaseChip.project  = project_name
  BaseChip.root     = "./#{project_name}"
  FileUtils.mkdir_p BaseChip.root
  BaseChip.build_directory_structure(BaseChip.root, BaseChip.project_directories)
  BaseChip.erb_template "#{BaseChip::GEM_DIR}/collateral/project/settings.rb.erb", "#{BaseChip.root}/base_chip/settings.rb"
  BaseChip.erb_template "#{BaseChip::GEM_DIR}/collateral/project/project.rb.erb" , "#{BaseChip.root}/base_chip/project.rb"
  FileUtils.cp          "#{BaseChip::GEM_DIR}/collateral/project/gitignore"      , "#{BaseChip.root}/.gitignore"
  FileUtils.cd          BaseChip.root

  if options.git
    system "git init ."
    system "git add ./base_chip ./.gitignore"
    system "git commit -m 'Initial automated project build by BaseChip.' ."

    normal "Your project has been created.\n" +
           "Your next step is probably to generate a block.\n" +
           "You can learn more by entering your newly created directory, and typing:\n" +
           "  basechip help generate block"
  end
end
ready_workload(*args) click to toggle source
# File lib/base_chip/top_menu.rb, line 21
def ready_workload(*args)
  @targets = args
  BaseChip.load_environment
  @project = BaseChip.project
  @project.ready(@targets) if @targets.size > 0
end
rerun(bundle_path) click to toggle source
# File lib/base_chip/top_menu.rb, line 116
def rerun(bundle_path)
  fault "#{bundle_path} does not exist" unless File.exist?(bundle_path)
  case bundle_path
  when /(.*)\.tgz$/ 
    puts "Unzipping #{bundle_path}"
    system "tar -zxvf #{bundle_path}"
    bundle_path = $1
  end
  fault "#{bundle_path}/rerun.yaml does not exist" unless File.exist?("#{bundle_path}/rerun.yaml")
  rerun_hash = YAML.load(File.read("#{bundle_path}/rerun.yaml"))
  BaseChip.options.seed            ||= rerun_hash['seed' ]
  BaseChip.options.modes           ||= rerun_hash['modes']
  BaseChip.options. append_arguments = (BaseChip.options. append_arguments || []) + (rerun_hash[' append_arguments'] || [])
  BaseChip.options.replace_arguments = (BaseChip.options.replace_arguments || []) + (rerun_hash['replace_arguments'] || [])
  BaseChip.options. append_arguments = nil if BaseChip.options. append_arguments.empty?
  BaseChip.options.replace_arguments = nil if BaseChip.options.replace_arguments.empty?
  ready_workload(rerun_hash['full_name'])
  @project.workload.first.directory "#{@project.workload.first.directory}.rerun"
  @project.run_all_readied
end